NSDateFormatter 开销
NSDateFormatter expense
DateFormatters creation/modification 有多贵?
创建 4 个略有不同的 DateFormatter 或修改单个 DateFormatter 是否更便宜?
依稀记得修改DateFormatters
与修改 GL 上下文一样昂贵(即:非常)。
关于该主题的讨论已过时
Why is allocating or initializing NSDateFormatter considered "expensive"?
NSDateFormatter 的缺点是创建新实例或设置格式和语言环境的成本。实际上这些操作是 iOS SDK 上最慢的操作之一,您真的必须避免它。
Read this article to understand more about expensive objects like NSDateFormatter
func testPerformanceExampleUpdateFormat() {
self.measure {
(0...1_000).forEach { _ in
let df = DateFormatter()
df.dateFormat = "MMM yyyy"
let formattedDate1 = df.string(from: Date())
df.dateFormat = "MM/dd/yyyy"
let formattedDate2 = df.string(from: Date())
}
}
}
func testPerformanceExampleNewInstance() {
self.measure {
(0...1_000).forEach { _ in
let df1 = DateFormatter()
df1.dateFormat = "MMM yyyy"
let df2 = DateFormatter()
df2.dateFormat = "MM/dd/yyyy"
let formattedDate1 = df1.string(from: Date())
let formattedDate2 = df2.string(from: Date())
}
}
}
格式更新1000次结果时间:0.0896秒
创建新实例1000次结果时间:0.138秒
一个型号有多贵?
func testPerformanceExample() {
self.measure {
(0...1_000).forEach { _ in
let int = DateFormatter()
}
}
}
结果时间为0.0017秒。对于 DateFormat
的 1000 个实例
让我们将它与其他类型进行比较:
0.000883 s. for 1 000 instances of Int; // let int = 2
0.000814 s. for 1 000 instances of String; // let str = String("Hello")
0.00118 s. for 1 000 instances of Date; // let date = Date()
0.0784 s. for 1 000 instances of UITableViewController; let vc = UITableViewController()
0.246 s. for 1 000 instances of UITableView; // let tv = UITableView()
贵吗?
DateFormatters creation/modification 有多贵? 创建 4 个略有不同的 DateFormatter 或修改单个 DateFormatter 是否更便宜?
依稀记得修改DateFormatters 与修改 GL 上下文一样昂贵(即:非常)。
关于该主题的讨论已过时 Why is allocating or initializing NSDateFormatter considered "expensive"?
NSDateFormatter 的缺点是创建新实例或设置格式和语言环境的成本。实际上这些操作是 iOS SDK 上最慢的操作之一,您真的必须避免它。 Read this article to understand more about expensive objects like NSDateFormatter
func testPerformanceExampleUpdateFormat() {
self.measure {
(0...1_000).forEach { _ in
let df = DateFormatter()
df.dateFormat = "MMM yyyy"
let formattedDate1 = df.string(from: Date())
df.dateFormat = "MM/dd/yyyy"
let formattedDate2 = df.string(from: Date())
}
}
}
func testPerformanceExampleNewInstance() {
self.measure {
(0...1_000).forEach { _ in
let df1 = DateFormatter()
df1.dateFormat = "MMM yyyy"
let df2 = DateFormatter()
df2.dateFormat = "MM/dd/yyyy"
let formattedDate1 = df1.string(from: Date())
let formattedDate2 = df2.string(from: Date())
}
}
}
格式更新1000次结果时间:0.0896秒
创建新实例1000次结果时间:0.138秒
一个型号有多贵?
func testPerformanceExample() {
self.measure {
(0...1_000).forEach { _ in
let int = DateFormatter()
}
}
}
结果时间为0.0017秒。对于 DateFormat
的 1000 个实例让我们将它与其他类型进行比较:
0.000883 s. for 1 000 instances of Int; // let int = 2
0.000814 s. for 1 000 instances of String; // let str = String("Hello")
0.00118 s. for 1 000 instances of Date; // let date = Date()
0.0784 s. for 1 000 instances of UITableViewController; let vc = UITableViewController()
0.246 s. for 1 000 instances of UITableView; // let tv = UITableView()
贵吗?