Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/visual-studio-2010/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/gwt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何找到一段代码的执行时间?_C#_Visual Studio 2010_Visual Studio 2012_Ssms - Fatal编程技术网

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中查

C#代码

  • 是否可以在visual studio中找到一组代码的执行时间

  • 如果visual studio确实为此提供了任何工具,有哪些替代方案

  • 是否有免费可靠的工具可供下载

  • SQL server management studio

  • 是否可以在SQL server Management studio中找到一组代码的执行时间

  • 如果SQL server Management studio确实为此提供了任何工具,有哪些替代方案

  • 是否有免费可靠的工具可供下载

  • 谢谢你的C#:

    在Visual Studio中查看分析管理器。它创造了奇迹,解决了许多生活中的编程问题,试图找出性能问题。它在VS2010的测试菜单下

    它可以使用几种不同的技术,您可以从中选择,以最适合您的性能调试需要

    对于SQL:


    我通常只使用性能计时器,或
    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。