gpt4 book ai didi

profiler - 代码分析器如何工作?

转载 作者:行者123 更新时间:2023-12-03 11:35:27 25 4
gpt4 key购买 nike

当我在做一个大学项目时,我使用了一个老学生制作的项目内部分析器,它非常基本但足够好,因为它的任务是减去代码两点之间的时间并给出统计数据。

现在,专业的分析器是如何工作的?它是否预处理代码以插入检查点或类似的东西?它是否读取带有调试数据的二进制代码以捕获调用函数的位置?

谢谢。

最佳答案

有许多不同的分析器以不同的方式工作。

常用的分析器只是定期检查正在运行的程序,以查看当前正在执行哪些汇编指令(程序计数器)以及哪些例程调用了当前函数(调用堆栈)。这种采样 profiler 可以使用标准二进制文件,但如果您有调试符号来计算程序中给定地址的代码行,则更有用。

除了定期采样外,您还可以使用处理器性能计数器在发生一定数量的事件(例如缓存未命中)后进行采样,这将帮助您查看程序的哪些部分由于内存访问而变慢。

其他分析器涉及重新编译程序以插入指令(称为 检测 )来计算每个连续指令集(基本块)的执行频率,或者甚至记录基本块的执行顺序,或者在某些地方记录变量的内容。

仪器方法可以为您提供您可能想要的所有精度和数据,但会减慢程序速度并改变其性能特征。相比之下,使用基于采样的方法,您可以根据运行程序所需的时间长度和获得的配置文件数据的准确性来调整性能影响。

关于profiler - 代码分析器如何工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/460698/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com