我有经验的探查器(主要是随编译器一起提供的Digital Mars D探查器)似乎极大地减慢了正在探查的程序的执行。这对我使用探查器的意愿产生了重大影响,因为它使对许多程序的“真实”运行进行性能分析,而不是对非常小的输入进行测试是不切实际的。我对探查器的实现方式了解不多。剖析几乎是生活中的事实时,是否出现严重的(> 2倍)减慢速度,还是有分析器避免这种情况?如果可以避免的话,是否有D可用的快速分析器,最好是D2,最好是免费的?
最佳答案
我不了解D探查器,但是通常来说探查器可以使用两种不同的方式来收集分析信息。
第一种是通过检测,通过在各处注入(inject)日志记录调用。这或多或少地减慢了应用程序的速度。通常更多。
第二个是抽样。然后,探查器会定期中断应用程序并检查调用堆栈。这根本不会减慢应用程序的速度。
采样分析器的缺点是结果不如仪器分析器详细。
如果可以使用采样代替仪器运行,请查看分析器的文档。否则,您在“采样”和“仪器”中会有一些新的Google术语。