gpt4 book ai didi

visual-studio-2012 - 在分析软件中,为什么以毫秒为单位使用百分比而不是时间?

转载 作者:行者123 更新时间:2023-12-04 17:01:42 24 4
gpt4 key购买 nike

我和一位同事正在查看 VS2012 中的 Visual Studio Profiling 报告,他们问我:“为什么要使用百分比来表示方法中的持续时间或调用方法所花费的时间?”

我的解释是该工具提供了一些表示哪些方法/调用需要很长时间或方法的哪些部分需要很长时间。现在,这可以是抽象(百分比)或绝对值(时间(毫秒)),但两者都足以让您指出应用程序中的问题区域。

我们并不是特别相信这一点,所以我想我会问互联网。

最佳答案

我是 Visual Studio Profiler 团队的 Andre Hamilton。值以百分比而不是毫秒为单位的原因是因为您看到的是基于样本分析而不是基于仪器的分析的报告。

样本分析
基本上,操作系统会定期进行堆栈遍历。您在分析报告中看到的结果代表操作系统执行堆栈遍历时特定函数在堆栈上的时间比例

仪器分析
我们基本上修改二进制文件(静态或动态)并拦截函数的开始和结束。然后我们在启动和退出函数时获取时间戳。这将为您提供有关函数执行的准确信息,但它并非没有成本。由于在每个函数进入和退出时都会获取信息,因此生成的分析报告可能非常庞大(程序执行几秒钟就拥有超过 1GB 的数据并不是未知的)。此外,如果对已签名的二进制文件使用静态检测,则需要对它们进行重新签名。这可能会使开发过程复杂化。动态检测在这里有所帮助,但这并不能避免数据开销。除非您专门寻找时间信息,否则采样确实是其他海报所表达的方法。

供引用
Visual Studio 带有用于静态检测的 vsinstr(在\Team Tools\Performance Tools 中找到)。

关于visual-studio-2012 - 在分析软件中,为什么以毫秒为单位使用百分比而不是时间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15928595/

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