C# 使用迷你剖析器
当使用mini profiler时,这是否意味着生产代码将被使用块“打乱”C# 使用迷你剖析器,c#,mvc-mini-profiler,C#,Mvc Mini Profiler,当使用mini profiler时,这是否意味着生产代码将被使用块“打乱” using (profiler.Step("Set page title")) { ViewBag.Title = "Home Page"; } 我想如果它是一次性测试,我可以删除它,但通常您希望将它们保留在代码库中以进行持续评测。这实际上是一个糟糕的示例-您通常不会评测一些琐碎的东西 最终,这是你想要描述的内容。对于ADO.NET之类的东西有一个钩子,但是如果你想让它在这之外分析一些东西,是的:你需要帮助它
using (profiler.Step("Set page title"))
{
ViewBag.Title = "Home Page";
}
我想如果它是一次性测试,我可以删除它,但通常您希望将它们保留在代码库中以进行持续评测。这实际上是一个糟糕的示例-您通常不会评测一些琐碎的东西 最终,这是你想要描述的内容。对于ADO.NET之类的东西有一个钩子,但是如果你想让它在这之外分析一些东西,是的:你需要帮助它 “乱扔垃圾”,这是主观的。最好的方法通常是将检测限制在非常高级别的操作中,然后根据需要(由于已确定的问题点)放大更精细的操作;例如,您可能有:
...
using(profiler.Step("Refresh customer"))
{
// ...
}
...
只有当你发现需要1800毫秒放大时:
...
using(profiler.Step("Refresh customer"))
{
using(profiler.Step("Query LDAP"))
{ ... }
using(profiler.Step("Query primary customer DB"))
{ ... }
using(profiler.Step("Query aux db"))
{ ... }
using(profiler.Step("Print, scan, and OCR"))
{ ... }
}
...
还有一个用于单个命令的.Inline(…)
方法
无论你是否认为这是“乱丢垃圾”:
- 它强调(事实上,通常是一个要求)——有代码来支持您的功能是可以的!事实上,它是您考虑(并衡量)新代码/修改代码的性能的一种证据
- 这完全取决于您如何使其粒度
- 因此,它为用户提供了一个有意义的详细级别—日志中没有大量的琐事,也没有大多数日志的性能侵入性