.net 测量函数、类和进程速度的最佳方法
测量函数和类的速度的最佳方法是什么?对于每个函数,都有各种各样的解决方案,我想知道如何测量运行速度并用最好的解决方案优化我的共享类 另外,您如何衡量SQL速度,例如存储过程、选择、视图等之间的差异?您有两个选择 用于特定方法。 这是.NET中的高分辨率计时器,可用于代码的特定部分 如果需要测量整个应用程序的性能,请使用探查器。.net 测量函数、类和进程速度的最佳方法,.net,sql,testing,performance,measure,.net,Sql,Testing,Performance,Measure,测量函数和类的速度的最佳方法是什么?对于每个函数,都有各种各样的解决方案,我想知道如何测量运行速度并用最好的解决方案优化我的共享类 另外,您如何衡量SQL速度,例如存储过程、选择、视图等之间的差异?您有两个选择 用于特定方法。 这是.NET中的高分辨率计时器,可用于代码的特定部分 如果需要测量整个应用程序的性能,请使用探查器。 您可以使用Visual Studio Ultra edition的内置探查器或类似工具。最好使用探查器。测量挂钟执行时间(例如由Stopwatch类完成)的问题在于,它受
您可以使用Visual Studio Ultra edition的内置探查器或类似工具。最好使用探查器。测量挂钟执行时间(例如由
Stopwatch
类完成)的问题在于,它受到许多您无法控制的因素的影响。仅提及其中几个因素,还有网络和其他I/O延迟,以及影响应用程序和线程相对优先级的操作系统调度程序决策。如果您在虚拟化环境中运行,这也会对毫秒范围的挂钟时间测量产生较大影响。分析器并不完美,但它可以让您更好地了解执行代码实际花费的时间
除此之外,一个好的探查器还可以提供其他有用的指标,比如代码在执行过程中使用了多少内存。最好不要混淆度量和优化的目标。它们是不同的任务。测量虽然有助于量化修复的结果,但却不能告诉你修复什么 关于测量的问题,如果我想展示某物的速度,我需要一个受控的环境和一个好的秒表。然而,为了优化,粗略的测量(比如运行1000次)和使用简单的计时器就足够了 关于优化问题,我不关心速度。 我担心不必要的活动。 不需要高速运行代码就可以找到它 当任何程序运行时,它都会跟踪调用树。 优化包括删除尽可能多的叶子(说明)和水果(I/O)。 一个很好的方法是修剪整根树枝
- 在除了最小的程序之外的所有程序中,典型的优化机会都是由调用点(调用函数的代码行,而不是函数本身)组成的,当人们意识到调用树中有多少是从它们中产生的时,实际上可以用另一种方式来完成。一行看似无辜的代码可能占整个树的很大一部分,您可以简单地将其砍掉