情况:偶尔太忙的ASP.NET直播网站。
为代码添加完整的分析对性能影响太大。使用性能监视器,我们很快在“所有堆中的字节数”计数器中找到了一个锯齿形图,它与GC计数器配对。我们认为某些代码是罪魁祸首。
是否存在暂时“注入”分析的方法或可能性,对于某些页面,库,函数或其他什么?优选地尽可能轻,因为任何额外的开销可能会使这个脆弱的系统失效。我知道.NET不支持方法回调挂钩(就像AOP一样)。
答案 0 :(得分:2)
一些想法:
如果它有用,您可能也会对我的书中的效果提示感兴趣:Ultra-Fast ASP.NET。
编辑:您也可以尝试使用.NET Memory Profiler(可免费试用)附加到正在运行的进程。与计数器相比,它具有相当的侵入性,但如果您需要捕获当前内存状态的快照以调试问题,则可能没有更好的选择。
答案 1 :(得分:1)
是的,您可以在应用程序运行时take a memory dump查看它在内存中的内容。这应该强化或否定你的假设。
答案 2 :(得分:1)
我最近发布了一个类似挑战的可能解决方案:
Profiling a multi-tiered, distributed, web application (server side)显示了一个高级方法(URL级别的分析):
我们的想法是使用现有的网络日志,并将它们转换为“一张图片,价值1000字”的图表。
这种方法对于需要更精细细节的用例来说是不够的,但它对我个人有所帮助,在您的案例中可能值得探索。
答案 3 :(得分:0)
你能在ASP .NET上做this吗?这是了解发生了什么的快速方法。