![]() |
1
127
扩展秒表类怎么样?
然后这样称呼它:
您可以添加另一个重载,忽略“iterations”参数并使用一些默认值(如1000)调用此版本。 |
![]() |
2
29
以下是我一直在使用的:
用途:
|
![]() |
3
12
您可以尝试为正在使用的任何类(或任何基类)编写扩展方法。 我会让电话看起来像:
然后是扩展方法:
从DependencyObject派生的任何对象现在都可以调用Timedfor(..)。可以很容易地调整函数,通过引用参数提供返回值。 —— 如果不希望将功能绑定到任何类/对象,可以执行以下操作:
然后你可以像这样使用它:
如果不能做到这一点,这个答案看起来有一些不错的“通用”能力: |
![]() |
4
7
不久前,我编写了一个简单的CodeProfiler类,它包装了秒表,以便使用操作轻松分析方法: http://www.improve.dk/blog/2008/04/16/profiling-code-the-easy-way 它还可以让您轻松地分析多线程代码。下面的示例将分析带有1-16个线程的操作lambda:
|
![]() |
5
6
这个
示例调用代码
我不喜欢将迭代包含到
示例调用代码
以下是扩展方法版本
和示例调用代码
我测试了静态方法和扩展方法(结合迭代和基准),预期执行时间和实际执行时间的增量为<=1毫秒。 |
![]() |
6
4
假设你只需要一个快速的时间安排,这很容易使用。
|
![]() |
7
2
对于我来说,这个扩展在int上感觉有点直观,您不再需要实例化秒表或担心重置它。 所以你有:
使用示例:
样品输出:
|
![]() |
8
1
可以重载多个方法来覆盖可能要传递给lambda的各种情况的参数:
或者,如果必须返回值,则可以使用func委托。如果每次迭代都必须使用唯一的值,则还可以传入一个(或多个)参数数组。 |
![]() |
9
1
我喜欢使用VanceMorrison(来自.NET的性能达人之一)的代码计时器类。 他在他的博客上发表了一篇题为“的文章。 Measuring managed code quickly and easiliy: CodeTimers “。 它包括一些很酷的东西,比如多采样编码器。它可以自动计算平均值和标准偏差,也可以很容易地打印出结果。 |