我对涉及iPad模拟器的测试感到困惑。唯一的区别是NSDateFormatter
的位置。
NSDateFormatter
初始化代码放在一个调度队列中。这意味着每次调用调度队列时都会执行初始化。
输出:
iPad Simulator CPU = 106% (constant)
NSDateFormatter
初始化代码放在viewDidLoad
方法中。这意味着初始化初始化一次。
输出:
iPad Simulator CPU = 133% (fluctuates +/- 2%)
有什么想法吗?
答案 0 :(得分:1)
内存分配是最昂贵的非磁盘操作。如果从调度队列中运行短块,则每个块在花时间分配日期格式化器时花费最多。
通过将日期格式化程序初始化移动到viewDidLoad,您只需创建一个日期格式化程序并重复使用它。
课程:如果你可以提供帮助,不要在经常重复的代码中进行内存分配。
答案 1 :(得分:1)
不要在模拟器中检查性能。仅测试设备上的CPU使用情况。模拟器正在您的计算机的intel CPU上运行。始终在真实设备上进行性能测试。您可能正在查看模拟器中的错误或不良实现。