使用迷你探查器时,这是否意味着生产代码将使用块“乱丢”?
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(…)方法.
你是否认为这是“乱扔垃圾”:
>它强调performance is a feature(实际上,通常是一项要求) – 可以使用代码来支持您的功能!实际上,这是一种证据表明您已经考虑(并测量过)新的/改变的代码片段的性能>完全是上下文的,你有多么精细>因此,它为用户提供了有意义的详细程度 – 在日志中没有大量的琐事,并且没有大多数日志记录的性能侵入性