使用 Instruments 时间分析器时,我经常会得到没有意义的结果。它们表明时间花费在文件的某些部分,这些部分要么在正在检查的函数之外,要么不包含可执行代码(注释、空行等)。这使得结果常常几乎毫无用处。
我尝试了很多方法来解决这个问题:
- 在重新编译和重新分析之前关闭 Instruments
- 清理构建,重新编译
- 每次分析时都重新启动仪器
- 更新至 Xcode 4.3.2
这些有时会有所帮助,但并不总能避免问题。
我可以做什么来解决这个问题?
最佳答案
我在使用设置了 -O3 优化标志的 gcc 编译的代码上遇到了同样的问题。谷歌搜索后,我了解到 Apple 的时间分析器不喜欢使用优化标志编译的 gcc 代码。
在不使用 -O3 标志的情况下重新编译我的代码并重新运行时间分析器,热点现在与我的源代码的正确行相匹配。也许这与您的问题有关。
关于Xcode 仪器 : profiled hotspots don't match up with source code,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10784809/