使用 __gnu_mcount_nc 捕获函数退出时间
尝试在嵌入式平台上执行性能分析,实现一个仅记录堆栈的函数每个函数条目的帧和当前周期计数产生了有关调用者/被调用者图和常用函数的有用见解。然而,缺乏对函数退出时间的可见性对捕获函数体内花费的完整时间构成了挑战。
GNU 分析工具方法
与上述相反在实现过程中,GNU 分析工具(例如 gprof)通过利用堆栈采样克服了这一限制。 gprof 不依赖函数进入和退出时间,而是通过计算每个函数中的 PC 样本来测量每个函数的自时间。然后,根据函数到函数的调用计数,将该自时间分配给调用者。
堆栈采样的优点
与 PC 采样相比,堆栈采样提供几个优点:
调用图和热点的替代方案
虽然调用图和热点可以提供一些见解,但它们可能不会暴露隐藏的内容性能问题。为了进行有效的分析,建议检查随机原始堆栈样本,以识别导致过多时间消耗的函数以及调用它们的原因。这种方法可以更深入地了解代码结构和潜在的优化领域。
以上是我们如何准确捕获函数退出时间以进行嵌入式系统性能分析?的详细内容。更多信息请关注PHP中文网其他相关文章!