gpt4 book ai didi

ios - 将结构体设置为可编码/可解码而不只是可编码是否有任何性能优势?

转载 作者:行者123 更新时间:2023-11-28 10:28:55 26 4
gpt4 key购买 nike

对于要序列化的示例 struct Person:

struct Person {
let firstName: String
let lastName: String
}

我们可以使其符合EncodableDecodableCodable协议(protocol)。我知道我们在 EncodableDecodable 之间的选择取决于用例(例如,如果我们正在访问 API 并且不需要解码包含相同内容的响应)类型),但如果该结构体同时用于编码和解码,我们也可以使其符合 Codable

如果我们需要该结构严格用于编码解码,但不是两者,那么从性能角度来看仅仅使用一个包罗万象的Codable 而不是指定 Encodable/Decodable 一致性?

使用Codable而不是指定Encodable/Decodable的一个明显缺点是其他程序员可能会误解该结构体用于编码和解码,而实际上两者只发生其中之一。但是如果我对性能非常感兴趣怎么办?

最佳答案

“性能”没有单一维度。这取决于你的意思。例如,在不需要时添加 Encodable 一致性可能会增加二进制文件的大小,从而减慢启动时间。或者它可能是微不足道的,因为二进制大小与启动时间不太相关(因为文件是内存映射的)。或者您可能指的是编译时性能,其中明确添加自动生成的一致性显然需要一些额外的编译器工作,并且在某些情况下可能会增加类型检查器需要遍历的类型海洋,从而稍微减慢速度。 p>

但是对于日常工作,很难想象添加不必要的 Encodable 一致性会导致 TableView 滞后的情况(如果这就是您所说的性能)。你的“另一个程序员可能会误解”的考虑要重要得多。

关于ios - 将结构体设置为可编码/可解码而不只是可编码是否有任何性能优势?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57149846/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com