[英]Is it possible to use visual studio performance profiling with service fabric?
[英]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.