我有一个C#项目,它使用了很多函数。我想用秒表做个简单的测试。但我不想一个接一个地给每个功能增加秒表。
我正在寻找一种方法,以增加秒表的每一个功能。
我不需要使用秒表,即使是简单的计时器也能完成任务。我只需要知道如何添加秒表,计时器等的每个功能,而不重复相同的过程。
谢谢你帮忙。
发布于 2022-09-20 12:35:13
不要用分析器代替。
如果您想研究某些您感兴趣的特定操作的运行时,秒表是很好的。但是对每个函数使用一个是错误的,考虑到函数可以非常小,而秒表也有一些开销。
如果您希望监视程序的总体性能,则使用性能分析器是正确的工具。一些分析器提供多个不同的测量模式,还有一些提供了一种仪器化的模式,可以精确地计算方法调用的频率。但是它的开销太高了,所以它只能真正地用于分析特定的测试用例。
visual调试器还应该能够显示两个断点之间的运行时间,这些时间可能由于缺乏优化而不准确,但是应该给出所花费的时间的一些指示。
发布于 2022-09-20 13:36:52
有一个名为MethodTimer的Fody,您可以在测试项目中使用它来记录方法执行时间,而不会影响生产代码。您需要将Fody和MethodTimer.Fody nuget包添加到您的项目中:
示例
public class MyApplicationClass
{
public static void TimeExecution()
{
await Task.Delay(1000);
}
}
public class MyTestClass
{
[Test]
[Time]
public async Task TimedExecution_Test()
{
MyApplicationClass.TimeExecution();
}
}
//Optional interceptor to customize logging output of MethodTimer.Fody
public static class MethodTimeLogger
{
public static void Log(MethodBase methodBase, long milliseconds, string message)
{
//Write to VS Debug Output window, logger, etc...
Debug.WriteLine($"Time Ms: {milliseconds}");
}
}https://stackoverflow.com/questions/73786687
复制相似问题