ios NSTimeZone有多贵

bcs8qyzn  于 12个月前  发布在  iOS
关注(0)|答案(2)|浏览(77)

创建[NS]时区的成本有多高?这意味着拥有一个更便宜的

static let utc = TimeZone(abbreviation: "UTC")

或具有
时区(缩写:“UTC”)
到处都是(正如我在一个MR I中看到的那样;目前正在审核中)

7fhtutme

7fhtutme1#

与应用程序的其他操作相比,时区的示例化不会花费任何明显的时间。在正常使用中,您不会看到2个应用程序之间的任何性能差异。
最重要的是确保你的代码是干净的。不要喷TimeZone(缩写:“UTC”),将其 Package 在一个帮助器方法中,该方法可以执行您正在执行的任何日期格式设置,并从您需要的位置调用它,以便您可以在一个位置本地化所有日期函数。

zaqlnxep

zaqlnxep2#

使用TimeZone(缩写:“UTC”)或使用静态let,如static let utc = TimeZone(缩写:“UTC”)具有不同的性能含义。
使用TimeZone(缩写:“UTC”),因为它涉及到创建TimeZone类的新示例、解析缩写字符串和执行一些初始化任务。
另一方面,使用静态let,如static let utc = TimeZone(缩写:“UTC”)创建TimeZone对象的单个示例并将其重命名一次。然后,在代码中访问utc的任何地方都将重用此示例,这在内存和性能方面可以更有效。它本质上是一种缓存形式。
因此,如果你的代码中有多个地方需要使用UTC时区,使用像utc这样的静态let可以更有效,因为它避免了每次需要时都创建一个新的TimeZone示例。如果您有一个经常使用且不变的对象,这是一个很好的实践。
但是,这种性能差异通常很小,除非您经常创建大量的TimeZone对象,否则可能不会引起注意。在大多数情况下,代码的可读性和可维护性应该是更高的优先级。如果每次都有很好的理由创建一个新的TimeZone对象,那么应该做对特定用例有意义的事情。

相关问题