如何在C#中多次使用StopWatch?

2023-11-21

我有执行不同操作的简短代码,我想测量执行每个操作所需的时间。我在这里阅读了有关秒表类的信息,并且想要优化我的时间测量。 我的函数调用了 5 个其他函数,我想在不声明的情况下测量每个函数:

stopwatch sw1 = new stopwatch();
stopwatch sw2 = new stopwatch();
etc..

我的函数看起来像这样:

public bool func()
{
 ....
 func1()
 func2()
 ....
 ....
 func5()
}

有没有一种方法可以使用一个秒表实例来测量时间?

thanks!!


Use 代表们将方法作为参数传递给函数。

这里我使用了 Action Delegates,因为指定的方法不返回值。

如果您的方法具有返回类型或参数,则可以使用函数委托

    static void Main(string[] args)
    {
        Console.WriteLine("Method 1 Time Elapsed (ms): {0}", TimeMethod(Method1));
        Console.WriteLine("Method 2 Time Elapsed (ms): {0}", TimeMethod(Method2));
    }

    static long TimeMethod(Action methodToTime)
    {
        Stopwatch stopwatch = new Stopwatch();
        stopwatch.Start();
        methodToTime();
        stopwatch.Stop();
        return stopwatch.ElapsedMilliseconds;
    }

    static void Method1()
    {
        for (int i = 0; i < 100000; i++)
        {
            for (int j = 0; j < 1000; j++)
            {
            }
        }
    }

    static void Method2()
    {
        for (int i = 0; i < 5000; i++)
        {
        }
    }
}

通过使用它,您可以传递任何您想要的方法。

希望有帮助!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在C#中多次使用StopWatch? 的相关文章

  • 更快的算法来计算有多少数字可以被范围内的特定整数整除

    int a b c d 0 cin gt gt a gt gt b gt gt c for int i a i lt b i if i c 0 d cout lt
  • C修改printf()输出到文件

    有没有办法修改printf为了将字符串输出到文件而不是控制台 我尝试在互联网上查找一些内容 发现了类似的电话dup dup2 and fflush这可能与此有关 EDIT 也许我不清楚 问题是这是C考试问题 问题如下 解释一个通常将字符串输
  • C# 中的协变和逆变

    首先我要说的是 我是一名正在学习 C 编程的 Java 开发人员 因此 我会将我所知道的与我正在学习的进行比较 我已经使用 C 泛型几个小时了 我已经能够在 C 中重现我在 Java 中知道的相同内容 除了几个使用协变和逆变的示例 我正在读
  • F10键没被抓住

    I have a Windows Form and there overriden ProcessCmdKey However this works with all of the F Keys except for F10 I am tr
  • 将成员函数作为参数传递/c++

    我想用 C 实现一个类b可以通过封装该迭代器类型的成员集进行某种迭代 喜欢 b object for each x do function f so 函数 f会得到每个人的x成员并做任何事情 比方说 void function f x me
  • .net Framework (.net 4.0) 中定义 Base 3 数字的类

    我正在寻找一些可以用来定义 3 基数 三进制数 的类 有什么我可以在 net 框架中使用的东西或者我需要写一些东西吗 谢谢你的帮助 您可以使用解析Convert ToInt32 s base http msdn microsoft com
  • 使用 openssl 检查服务器安全协议

    我有一个框架应用程序 它根据使用方式连接到不同的服务器 对于 https 连接 使用 openssl 我的问题是 我需要知道我连接的服务器是否使用 SSL 还是 TLS 以便我可以创建正确的 SSL 上下文 目前 如果我使用错误的上下文尝试
  • Microsoft.Graph - 如何从具有不同用户名的共享邮箱发送?

    我目前正在将使用 SMTP 的服务代码移植到 Office 365 通过 SMTP 我可以使用 发件人 字段在来自共享收件箱的邮件上设置不同的用户名 同时保留共享电子邮箱地址 这似乎无法通过 Office 365 运行 其工艺流程为 客户填
  • 为什么重载方法在 ref 仅符合 CLS 方面有所不同

    公共语言规范对方法重载非常严格 仅允许根据其参数的数量和类型来重载方法 如果是泛型方法 则根据其泛型参数的数量进行重载 根据 csc 为什么此代码符合 CLS 无 CS3006 警告 using System assembly CLSCom
  • 同一索引操作上的不同估计行?

    简介和背景 我必须优化一个简单的查询 下面的示例 重写几次后 我认识到同一个索引操作的估计行数会根据查询的编写方式而有所不同 最初 该查询执行了聚集索引扫描 因为生产中的表包含二进制列 该表相当大 大约 100 GB 并且全表扫描执行起来需
  • C# 中处理 SQL 死锁的模式?

    我正在用 C 编写一个访问 SQL Server 2005 数据库的应用程序 该应用程序是数据库密集型的 即使我尝试优化所有访问 设置适当的索引等 我预计迟早会遇到死锁 我知道为什么会发生数据库死锁 但我怀疑我能否在某个时候发布不发生死锁的
  • 从包含大量文件的目录中检索文件

    我的目录包含近 14 000 000 个 wav 格式的音频样本 所有普通存储 没有子目录 我想循环浏览文件 但是当我使用DirectoryInfo GetFiles 在该文件夹上 整个应用程序冻结了几分钟 可以用另一种方式完成吗 也许读取
  • asp.net c# 防止在从服务器端代码更改索引时触发 selectedindexchanged 事件

    我在同一个 aspx 页面上有两个下拉列表控件
  • 当在 Repository/UnitOrWork 之上使用 Service 类时,我应该在哪里放置逻辑不适合 Repository 的常用数据访问代码?

    In my 先前的问题 https stackoverflow com questions 24906548 using the generic repository unit of work pattern in large projec
  • 展开路径中具有环境变量的文件名

    最好的扩张方式是什么 MyPath filename txt to home user filename txt or MyPath filename txt to c Documents and settings user filenam
  • 微软语音识别速度

    我正在使用微软的语音识别器开发一个小型练习应用程序 对于我正在做的事情来说 我似乎无法让它足够快地识别单个单词 我希望能够正常说话 系统将从我所说的内容中抓取 关键字 并生成一个字符串 目前我正在使用 5 个单词的自定义语法 红 蓝 黄 绿
  • 你能解释一下这个C++删除问题吗?

    我有以下代码 std string F WideString ws GetMyWideString std string ret StringUtils ConvertWideStringToUTF8 ws ret return ret W
  • 是否有任何不使用公共虚拟方法的正当理由? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 是否有任何不使用公共虚拟方法的正当理由 我在某处读到我们应该避免使用公共虚拟方法 但我想向专家确认这是否是有效的声明 对于良好且稳定的 API
  • 将一个 long 转换为两个 int 以进行重构

    我需要将一个参数作为两个 int 参数传递给 Telerik Report 因为它不能接受长参数 将 long 拆分为两个 int 并在不丢失数据的情况下重建它的最简单方法是什么 使用掩蔽和移位是最好的选择 根据文档 long 保证为 64
  • 如何强制执行特定的 UserControl 设计

    我正在编写一个基本用户控件 它将由一堆其他用户控件继承 我需要对所有这些后代控件强制执行某种设计 例如 顶部必须有几个按钮以及一个或两个标签 后代用户控件区域的其余部分可以自由放置任何内容 最初 我认为我可以将一个面板放到 Base Use

随机推荐

  • 在 Bootstrap 3 中用 Glyphicons PRO 替换标准 Glyphicons Halfling?

    我已经购买了完整的 Glyphicons PRO 软件包 并希望将其与 Bootstrap 3 一起使用 但是 我似乎无法找到有关如何执行此操作的全面文档 Glyphicons 网站缺少 如何使用 部分 并且随附的 PDF 也没有太大帮助
  • 如何查看我的客户端应用程序发送的 SOAP 数据?

    我有一个项目 我使用 wsdl exe 创建了 Web 服务代理类 然后简单地创建该类的实例 继承 System Web Services Protocols SoapHttpClientProtocol 并调用应发送 SOAP 消息的方法
  • 在 Vista/Windows 7 WPF FileDialog.Filter 中隐藏扩展

    我在 NET 4 WPF 应用程序中使用 WPF OpenFileDialog 和 SaveFileDialog 我使用 Filter 属性来允许用户设置不同的文件过滤器 在 NET 4 中 这使用 Windows Vista 引入的本机文
  • Firestore 读取具有自身条件的规则

    我目前正在尝试在 firebase 上构建小型应用程序作为对其的评估 它看起来很有趣并且非常高效 但我对 Firestore 规则有一个问题 我有一个集合 游戏 其对象如下所示 name String description String
  • 垂直对齐 ggplot2 绘图

    代码位于https gist github com low decarie 5886616可以生成双树状图平铺图 Dual dendogram tile plot as matrix USArrests main 美国逮捕 问题 将垂直树状
  • C# 如何获取来电显示?

    我想使用 56K 调制解调器获取拨打家庭电话的电话号码 有没有办法用 C 来实现这一点 并非所有调制解调器都支持主叫号码 对于那些这样做的人 制造商之间的实施方式有所不同 呼叫者 ID 通过串行数据传递 因此您必须使用TAPI库 或使用 W
  • 如果我想要空插值(分段常数),那么 numpy.interp 的最佳替代品是什么?

    numpy interp很方便 也比较快捷 在某些情况下 我想将其输出与非插值变体进行比较 其中稀疏值被传播 在 更密集 的输出中 并且结果是稀疏输入之间的分段常数 我想要的函数也可以称为 稀疏 gt 密集 转换器 它复制最新的稀疏值 直到
  • React Native 和 THREE.js(WebGL 库)集成

    我正在开发一个使用 React Web 和 React Native 的项目 我已经实现了一个 React Web 组件 它允许您从 OBJ MTL 和图像文件加载 3D 模型 加载模型后您可以对其进行编辑 在其上附加 3D 标签等内容 最
  • 期望有根视图控制器控制台的应用程序

    当我运行我的应用程序时 我在控制台中收到一条消息 2011 11 16 19 17 41 292 Juice 8674 707 应用程序预计在应用程序启动结束时有一个根视图控制器 我听别人说这与方法有关didFinishLaunchingW
  • 我可以在卫星程序集中合并本地资源吗?

    我有很多本地资源文件 Controls App LocalResources SomeControl ascx resx Pages App LocalResources SomePage aspx resx 等 我想添加另一种语言 但我不
  • Windows 窗体:检测焦点控件的变化

    我正在 Windows 窗体应用程序中实现复制粘贴 当用户更改应用程序中的焦点元素时 我需要启用 禁用这两个操作的栏按钮 我可以使用这样的方法找到当前的焦点控件 http www syncfusion com FAQ windowsform
  • Delphi:确定泛型的实际类型?

    有什么方法可以确定作为参数传递给方法的变量的类型吗 考虑一下这个类 TSomeClass class procedure AddToList
  • 如何检查 mysqli_query 是否删除了任何行[重复]

    这个问题在这里已经有答案了 我创建了从数据库中删除一些数据的函数 这是其中的一部分 mysqli query con DELETE FROM appsdata WHERE ownerID 123 但我想检查删除了多少行 mysql quer
  • 通过查找/替换 (Ctrl+F) 删除 Eclipse 代码编辑器中的空行

    我想通过 Eclipse 代码编辑器中的查找 替换方法从代码中删除所有空白行 我使用了正则表达式 n s n找到所有空白行但出现错误 Incompatible line delimiter near index 55110 用任何字符串替换
  • 如何获取特定类型类实例的多态函数的类型?

    例如 输入 t ap在 GHCi 中给出结果 ap Monad m gt m a gt b gt m a gt m b 如果我已经知道我要使用的 Monad 实例是 gt r 如何查询类型ap对于那个特定的例子 As 激光烟说作为评论你可以
  • 使用 Eclipse/Tomcat 自动将第 3 方 jar 添加到 WEB-INF/lib [重复]

    这个问题在这里已经有答案了 我在 Eclipse 上设置了一个动态 Web 项目 并使用 Tomcat 7 作为我的 Web 服务器 它似乎不会自动将我添加到构建路径上的库中的第 3 方 JAR 放入 WEB INF lib 文件夹中 有没
  • 创建 IE 插件

    我正在寻找为 IE 8 或 9 制作插件的教程 你能给我提供资源吗 拜托 为了和平和其他一切 我已经知道我可以制作 FF 或 Chrome 插件 我want制作一个 IE 插件 Thanks 你见过吗这个网站
  • 如何使 C# 枚举与数据库中的表保持同步

    这是一个稍微简化的示例 我对其进行了更改以隐藏实际代码 我有一个数据库驱动的应用程序和一个单独开发的小工具 旨在与该应用程序一起使用 有一个表定义了枚举 但它可能会随着时间的推移而改变 假设某个应用程序 医疗 需要相当精确地跟踪一个人的性别
  • WPF 用户控件上下文菜单可见性绑定

    我的用户控件上下文菜单可见性无法绑定依赖属性 任何想法 这是我的 WPF 代码
  • 如何在C#中多次使用StopWatch?

    我有执行不同操作的简短代码 我想测量执行每个操作所需的时间 我在这里阅读了有关秒表类的信息 并且想要优化我的时间测量 我的函数调用了 5 个其他函数 我想在不声明的情况下测量每个函数 stopwatch sw1 new stopwatch