.net 如何通过单元测试最好地监控性能?

.net 如何通过单元测试最好地监控性能?,.net,performance,unit-testing,.net,Performance,Unit Testing,我已经开始为我的代码编写更多的单元测试(我应该做更长的时间),并使用EQATEC之类的代码分析器来识别瓶颈。我想知道是否有一种正确的方法来监控单元测试中的性能 显然,代码分析器最适合优化,但我真正想要的是确保我最近的更改不会意外地破坏我的性能(通过调用冗余函数等),即使它没有破坏任何逻辑 我的第一个想法是多次运行我的方法(例如,insert或某种排序),以计算出它通常需要的刻度数。然后编写一个重复方法调用的单元测试,然后断言(elapsedTicks

我已经开始为我的代码编写更多的单元测试(我应该做更长的时间),并使用EQATEC之类的代码分析器来识别瓶颈。我想知道是否有一种正确的方法来监控单元测试中的性能

显然,代码分析器最适合优化,但我真正想要的是确保我最近的更改不会意外地破坏我的性能(通过调用冗余函数等),即使它没有破坏任何逻辑

我的第一个想法是多次运行我的方法(例如,
insert
或某种排序),以计算出它通常需要的刻度数。然后编写一个重复方法调用的单元测试,然后
断言(elapsedTicks
。不过,这似乎太武断了,我想知道其他开发人员在这种情况下使用了什么?

您可能会找到自己选择的有用工具

问候。

您可能会找到自己选择的有用工具


注意。

我真的建议进行单独的回归测试和单元测试。单元测试的目的是提高代码的可信度,它会起作用吗。它们应该是快速和简单的。要进行真正的性能测试,您需要足够大的样本量,以使测试结果值得。在单元测试中这样做会使单元测试花费太长时间,然后您可能会觉得不需要一直运行它们,因为它们花费的时间太长

对于回归测试来说,这是一个很好的工具(我知道可能有更好的工具),但是一个简单的excel宏就足够了。此外,您还可以将数据保存在电子表格中,以便轻松比较许多测试的运行情况


但是如果您仍然希望将性能测试纳入单元测试中。假设断言错误消息包括预期时间和实际时间,这将快速指示运行时间的距离,那么幻数可能是您的最佳想法。

我建议您进行单独的回归测试和单元测试。单元测试的目的是提高代码的可信度,它会起作用吗。它们应该是快速和简单的。要进行真正的性能测试,您需要足够大的样本量,以使测试结果值得。在单元测试中这样做会使单元测试花费太长时间,然后您可能会觉得不需要一直运行它们,因为它们花费的时间太长

对于回归测试来说,这是一个很好的工具(我知道可能有更好的工具),但是一个简单的excel宏就足够了。此外,您还可以将数据保存在电子表格中,以便轻松比较许多测试的运行情况


但是如果您仍然希望将性能测试纳入单元测试中。神奇数字可能是你最好的主意,假设断言错误消息包括预期和实际时间,这将快速指示运行时间的距离。

我认为您正在寻找更多的压力测试/负载测试软件。重点是我已经在使用单元测试来确保我的逻辑不会中断,我想尽快知道(最好是在VS中)比如说,如果我无意中对我拥有的递归函数进行了两次额外调用,这不会破坏任何东西,但会使它的速度降低400%。使用单元测试来衡量任务的性能可能很有用,但你必须对结果持谨慎态度。例如,在UT中,GC开销之类的事情可能不会出现。这可能会更多地应用于本机代码但CPU缓存的效果可能无法反映现实情况。我认为您正在寻找更多的压力测试/负载测试软件。重点是我已经在使用单元测试来确保我的逻辑不会中断,我想尽快知道(最好是在VS中)比如说,如果我无意中对我拥有的递归函数进行了两次额外调用,这不会破坏任何东西,但会使它的速度降低400%。使用单元测试来衡量任务的性能可能很有用,但你必须对结果持谨慎态度。例如,在UT中,GC开销之类的事情可能不会出现。这可能会更多地应用于本机代码但CPU缓存的效果可能无法反映现实。