繁体   English   中英

Visual Studio性能分析优化

[英]Visual studio performance profiling optimization

我有一个围绕WebAPI项目的大型解决方案。 我在特定的Web服务上遇到了一些性能问题,并使用VS2013中的内置性能分析器查找瓶颈并进行处理。 最终,我获得了对HTTP请求的响应时间,从大约500ms减少到了50ms(我使用外部应用执行重复的请求并记录了往返时间)。

但是,从性能分析器工具运行WebAPI时,我只会看到这种改进。 一旦我直接从Visual Studio(F5)或在我们的测试服务器上重新运行它,响应时间就会增加到大约400毫秒,这比原来的500毫秒有所改善,但并不十分出色。

如果在调试模式或发布模式下运行它,则仅会略有不同。 在所有涉及到的项目上,将“调试信息”设置为“无”,而不是默认的“仅pdb-only”,这会有所帮助,使平均响应时间降低到约350ms。

我无法一辈子,弄清楚性能分析器工具如何进一步优化代码。 我已经看到它可以运行多快,但我无法达到相同的性能,这让我感到震惊。

事实证明,性能分析器没有做任何其他事情来优化代码。 但是它确实在没有启用任何调试器的情况下运行IIS Express。

通过转到Web API项目的属性,并切换到“ Web”选项卡,我可以取消选中所有调试器,现在调试期间的响应时间与运行探查器时看到的时间相匹配。 显然,禁用ASP.NET调试器可防止对代码进行任何调试。

米卡尔是对的。

这个性能差异问题(当进行性能分析要比调试更好时)也困扰了我几个小时,我什至尝试将代码从Web API移到Console Application进行测试,并且Console Application具有与分析Web API时相似的性能。

然后我发现这是由于ASP.NET调试器启用了调试模式,这消耗了大量CPU,在取消检查调试器后,性能又恢复了,就像控制台应用程序和分析模式一样

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM