gpt4 book ai didi

windows - Windows 应用程序的性能分析。 Visual Studio Profiler 的更好替代品?

转载 作者:可可西里 更新时间:2023-11-01 09:56:52 26 4
gpt4 key购买 nike

我对用于性能分析的 Visual Studio Profiler 印象深刻。快速满足我的目的且易于使用。

我只是想知道 visual studio profiler 中的注意事项。是否有更好的 Windows 应用程序分析器可以更好地应对这些警告?

最佳答案

从积极的方面来说,没有人像微软一样制作出色的应用程序。 Visual Studio 是一款出色的产品,其探查器具有这些属性。

另一方面,也有一些注意事项(其他分析器也有)。

  • 采样模式下,线程阻塞时不采样。因此,它对无关的 I/O、套接字调用等视而不见。这是 profgprof 早期的一个属性,它们最初是作为 PC 采样器出现的,并且由于当 PC 被阻止时毫无意义,采样被关闭。 PC 可能毫无意义,但堆栈会准确说明线程被阻塞的原因,当需要花很多时间研究它时,您需要了解它。

  • 在检测模式下,它可以包括 I/O,但它只为您提供功能级时间百分比,而不是线路级。如果函数碰巧很小,或者它们只在少数几个地方互相调用,那可能没问题,所以找到调用点并不难。我和优秀的程序员一起工作,但我们的代码并不都是这样。事实上,调用站点通常是不可见的,因为它们是编译器插入的。另一方面,无论是谁编写的,堆栈示例都可以精确定位这些调用。

探查器很好地向您展示了不同线程的事件之间的差异。那么你需要知道的是,如果一个线程被挂起或显示处理器事件低,那是因为它正在阻塞它实际上不需要的东西吗?堆栈样本可以告诉您是否可以在阻塞期间获取它们。另一方面,如果一个线程正在大量启动,您知道它正在做的事情是否真的有必要或可以减少吗?堆栈示例也会告诉您这一点。

许多人认为分析器的主要工作是测量。就个人而言,我想要一些能够精确定位花费大量时间并且可以更有效地完成的代码的东西。大多数时候这些是函数调用站点,而不是“热点”。我不需要精确地知道“很多时间”。我知道它是,比方说,60% +/- 20% 这对我来说完全没问题,因为我正在寻找问题,而不是测量。如果因为这种不精确,我修复了一个不是最大的问题,那没关系,因为当我重复这个过程时,最大的问题会更大,以百分比的形式,所以我不会错过它。

关于windows - Windows 应用程序的性能分析。 Visual Studio Profiler 的更好替代品?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3572489/

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