C# 如何找到一段代码的执行时间?
C#代码C# 如何找到一段代码的执行时间?,c#,visual-studio-2010,visual-studio-2012,ssms,C#,Visual Studio 2010,Visual Studio 2012,Ssms,C#代码 是否可以在visual studio中找到一组代码的执行时间 如果visual studio确实为此提供了任何工具,有哪些替代方案 是否有免费可靠的工具可供下载 SQL server management studio 是否可以在SQL server Management studio中找到一组代码的执行时间 如果SQL server Management studio确实为此提供了任何工具,有哪些替代方案 是否有免费可靠的工具可供下载 谢谢你的C#: 在Visual Studio中查
我通常只使用性能计时器,或
DateTime
s。以类似秒表的方式使用。如果您只想在.NET中执行一些快速而不准确的计时检查,您可以始终创建一个秒表,然后围绕相关代码启动和停止它。快速、自由、丑陋。对于C#如果您不想使用探查器,只想知道执行某段代码需要多长时间,您可以使用秒表
var sw = StopWatch.StartNew();
//some code...
sw.Stop();
Console.Writeline(sw.Elapsed);
对于SSMS
如果需要在SQLServerManagementStudio中以毫秒为单位获取查询执行时间,有一种简单的方法可以实现这一点
set statistics time on
-- your query
set statistics time off
这将导致在消息窗口中出现以下lin:
SQL Server Execution Times: CPU time = 16 ms, elapsed time = 16 ms.
设置统计时间代码>-嗯,这是SSMS排序的。。。;对于.NET代码-存在很多探查器和检测框架(我喜欢mini profiler,但我有偏见;注意,您也可以使用mini profiler对SQL代码计时,并将所有数据一起显示),我通常只从DateTime创建时间对象。现在,在代码中所需的前后位置,然后我减去它们,并以秒或毫秒或其他形式输出结果时间跨度。作为mini profiler可以做什么的示例,这里是几分钟前在这个站点上拍摄的快照-注意,记录了更多的步骤,但默认情况下不会显示这些步骤(请参阅“显示平凡”):-还提供对已执行的所有SQL命令的完全访问,包括其参数。我们可以在stackoverflow.com的生产环境中全天候运行它,它的影响很小。如果您想在仍然非常脏的情况下减少脏,您可以用它创建一个类,实现IDisposable
,并在语句中使用它。确切的原因是什么?只是为了让你能用“使用”?这不是一个很好的解决方案,它会打乱编码实践,如果您真的想做这样的事情,最好使用PostSharp AOP,然后用正确的属性修饰任何必须分析的方法。但是不要开始在不需要处理的对象上创建IDisposable…@woutervs我认为aevitas的意思是,当您实现IDisposable,并因此使用(…)
样式在中使用您的类时,您就可以抽象出启动/停止调用。这将导致代码更干净,因为您自己的代码中只剩下using语句,而没有任何特定的代码来操作秒表。我完全知道他在说什么,在您看来,这可能更干净,但在大多数情况下,这永远不会被认为更干净。另一个程序员可能认为您正在使用非托管资源等等。如果您想让它更干净,那么最好使用lambda函数,例如Time(()=>YourFunction);或者更好的是,你必须按照你建议的方式来分析20种不同的方法。另外,我无法理解如何将整个PASTRAP开销添加到这个目的,这是一个更干净的解决方案,而不是创建一个负责启动/停止计时器的小类,以及显式地标记一段代码。我想你一定很喜欢PostSharp。