Chr*_*ris 6 optimization performance
我想收集有关我的代码的特定例程的指标,以了解我可以最佳优化的位置.让我们举一个简单的例子说我有一个带有多个"学生"的"班级"数据库.假设当前代码为每个学生调用数据库,而不是一次性地将它们全部抓取.我想看看每个学生行每次访问多长时间.
这是在C#中,但我认为它适用于所有地方.通常当我对特定例程的性能感到好奇时,我会在它运行之前创建一个DateTime对象,运行例程,然后在调用之后创建另一个DateTime对象,并获取两者之间的毫秒差异以查看它运行了多长时间.通常我只是在页面的跟踪中输出它...所以它有点低保真.这方面的最佳做法是什么?我想过能够将Web应用程序置于某种"诊断"模式并使用我之后的任何内容进行详细的日志记录/事件日志写入,但我想看看stackoverflow hive mind是否有更好的想法.
有时,您采取的方法可以让您更好地了解应用程序的性能。我可以推荐的一件事是使用 System.Diagnostics.Stopwatch 而不是 DateTime , DateTime 仅精确到 16 毫秒,而 Stopwatch 精确到 cpu 滴答声。
但我建议在开发过程中使用自定义性能计数器来补充它,以用于生产并在分析器下运行应用程序。