rpa*_*abi 2 windows comparison performance profiling
我对Visual Studio Profiler的性能分析印象深刻.快速为我的目的和易于使用.
我很想知道visual studio profiler中的警告.是否有更好的Windows应用程序分析器,这些注意事项更好?
从积极的方面来说,没有人会像微软那样制作出色的应 Visual Studio是一个很好的产品,它的探查器共享这些属性.
另一方面,有一些警告(也被其他分析者共享).
在采样模式下,当线程被阻塞时,它不会采样.因此,对于无关的I/O,套接字调用等是盲目的.这是一个属于prof和gprof的早期的属性,它最初是作为PC采样器,并且因为当被阻止PC没有意义时,采样被关闭.PC可能没有意义,但是堆栈确切地说明了线程被阻塞的原因,并且当有很多时间进入时,你需要知道它.
在检测模式下,它可以包含I/O,但它只提供功能级别的时间百分比,而不是行级别.如果功能碰巧很小,或者他们只在少数几个地方互相呼叫,那可能没问题,所以找到呼叫站点并不太难.我和优秀的程序员合作,但我们的代码并非都是这样.实际上,通常调用站点是不可见的,因为它们是编译器插入的.另一方面,无论是谁编写它们,堆栈样本都可以精确定位这些调用.
分析器很好地向您展示了不同线程的活动之间的分离.那么你需要知道的是,如果一个线程被暂停或显示一个低处理器活动,那是因为它阻塞了它实际上不需要的东西吗?堆栈样本可以告诉您,如果他们可以在阻止期间采取.另一方面,如果一个线程严重起动,你知道它正在做什么实际上是必要的还是可以减少的?堆栈样本也会告诉你.
许多人认为分析器的主要工作是衡量.就个人而言,我想要一些能够精确定位代码的代码,这些代码需要花费大量时间才能更有效地完成.大多数情况下,这些是功能调用站点,而不是"热点".我不需要精确地知道"很多时间".我知道它是60%+/ - 20%,这对我来说非常好,因为我正在寻找问题,而不是测量.如果由于这种不精确,我解决了一个不是最大的问题,那没关系,因为当我重复这个过程时,最大的问题会更大,百分比,所以我不会错过它.