关于Instruments CPU Profiler测量机制及应用的技术问询
关于Instruments中Time Profiler与CPU Profiler的疑问
我认为Instruments CPU Profiler是一款采样分析器,其输出与Time Profiler十分相似,但会报告“Gc/Mc”(我推测是百万/十亿周期)。
官方文档描述如下:
基于Cycle PMI对单个或全部进程的所有核心上运行的线程进行分析。
我认为此处的PMI指“performance monitoring interrupts(性能监控中断)”,这符合采样分析器的应用场景。现提出以下问题:
- Time Profiler与CPU Profiler的测量机制有何区别?或我该从何处了解更多相关信息?
- 何时应优先选用CPU Profiler而非Time Profiler?
- CPU Profiler仅执行
interrupt/suspend -> record callstack and context -> update counts这一流程,还是也涉及dtrace/ktrace或其他插桩技术?
我提出这些问题是因为发现Time Profiler与CPU Profiler的测量结果存在严重误导性,希望了解原因及通用诊断方法,目前暂无法复现最小可行示例,后续可能另行提问。
内容的提问来源于stack exchange,提问作者loonatick
相关产品推荐
相关产品推荐

