首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在C#项目的所有功能中添加秒表

在C#项目的所有功能中添加秒表
EN

Stack Overflow用户
提问于 2022-09-20 12:26:31
回答 2查看 91关注 0票数 1

我有一个C#项目,它使用了很多函数。我想用秒表做个简单的测试。但我不想一个接一个地给每个功能增加秒表。

我正在寻找一种方法,以增加秒表的每一个功能。

我不需要使用秒表,即使是简单的计时器也能完成任务。我只需要知道如何添加秒表,计时器等的每个功能,而不重复相同的过程。

谢谢你帮忙。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-09-20 12:35:13

不要用分析器代替。

如果您想研究某些您感兴趣的特定操作的运行时,秒表是很好的。但是对每个函数使用一个是错误的,考虑到函数可以非常小,而秒表也有一些开销。

如果您希望监视程序的总体性能,则使用性能分析器是正确的工具。一些分析器提供多个不同的测量模式,还有一些提供了一种仪器化的模式,可以精确地计算方法调用的频率。但是它的开销太高了,所以它只能真正地用于分析特定的测试用例。

visual调试器还应该能够显示两个断点之间的运行时间,这些时间可能由于缺乏优化而不准确,但是应该给出所花费的时间的一些指示。

票数 7
EN

Stack Overflow用户

发布于 2022-09-20 13:36:52

有一个名为MethodTimer的Fody,您可以在测试项目中使用它来记录方法执行时间,而不会影响生产代码。您需要将Fody和MethodTimer.Fody nuget包添加到您的项目中:

福迪努基特

MethodTimer.Fody Nuget

工作示例项目

示例

代码语言:javascript
复制
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}");
    }
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73786687

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档