如何测量 .NET 中多个并发线程的代码块(线程)执行时间

2023-11-21

现在我们只使用这样的东西

        stopWatch.Start();            
        try
        {
            method();
        }
        finally
        {
            stopWatch.Stop();
        }

这对于同步方法来说效果很好,但有些方法是异步执行的,因此当多个线程执行时时间会出现偏差。是否有与 System.Diagnostics.Stopwatch 等效的方法,它仅测量当前线程中花费的时间?

我们希望在内部测试版(alpha?)版本中收集较长时间的数据,并且在分析器下全职运行并不是一个可行的选择。

编辑:为了澄清,我们只想测量执行 method() 所花费的时间,因此如果 Method1() 和 Method2() 同时开始,并且 Method1 在 2 秒标记处完成,Method2 在 4 秒标记处完成,我想要一些东西可以告诉我 Method1 花费了大约 1 秒执行而 Method2 花费了大约 3 秒执行(假设在前 2 秒内他们平等地共享(假设单核)处理器。


嗯,来自 Jon Skeet 对这个问题的回答:

在线程应用程序中准确计时一行代码,C#

还有这篇文章:

http://lyon-smith.org/blogs/code-o-rama/archive/2007/07/17/timing-code-on-windows-with-the-rdtsc-instruction.aspx

似乎没有简单的方法可以做到这一点。

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

如何测量 .NET 中多个并发线程的代码块(线程)执行时间 的相关文章

  • 为什么在 C++ 中声明枚举时使用 typedef?

    我已经很多年没有写过任何 C 了 现在我正试图重新开始 然后我遇到了这个并考虑放弃 typedef enum TokenType blah1 0x00000000 blah2 0X01000000 blah3 0X02000000 Toke
  • C# Outlook 从收件人获取 CompanyName 属性

    我目前正在使用 C 编写 Outlook 2010 AddIn 我想要的是从我从 AppointmentItem 中提取的 Recipient 对象中获取 CompanyName 属性 因此 有了 AppointmentItem 的收件人
  • C++中的类要具备什么条件才能成为容器?

    我是 C 编程新手 偶然发现了这个术语containers举例如下vector deque map etc 一个企业的最低要求应该是什么class应该满足被称为container in C 我将从 范围 这个概念开始 Range 只有两个方
  • 虚拟并行端口模拟器

    在我的计算机网络课程中 我们应该通过使用本机寄存器 例如使用 outportb 等命令 来学习并行端口编程 我没有并行端口 因为我住在 2011 年 但想练习这些程序 我使用 dosbox 安装了旧的 Turboc 3 IDE 有没有一个程
  • Nhibernate:连接表并从其他表获取单列

    我有以下表格 create table Users Id uniqueidentifier primary key InfoId uniqueidentifier not null unique Password nvarchar 255
  • PrivateObject 找不到属性

    我的结构基本上如下所示 abstract class A protected string Identificator get set private void DoSomething DoSomethingSpecific protect
  • C 类型命名约定,_t 或 ALLCAPS

    我一直想知道是否有任何命名约定 例如何时对类型使用全部大写以及何时追加 t 什么时候不使用任何东西 我知道当时 K R 发布了各种有关如何使用 C 的文档 但我找不到任何相关内容 在 C 标准库类型中 t看起来漂亮占主导地位 time t
  • 为什么 std::function 不是有效的模板参数,而函数指针却是?

    我已经定义了名为的类模板CallBackAtInit其唯一目的是在初始化时调用函数 构造函数 该函数在模板参数中指定 问题是模板不接受std function作为参数 但它们接受函数指针 为什么 这是我的代码 include
  • “没有合适的默认构造函数可用”——为什么会调用默认构造函数?

    我已经查看了与此相关的其他一些问题 但我不明白为什么在我的情况下甚至应该调用默认构造函数 我可以只提供一个默认构造函数 但我想了解它为什么这样做以及它会产生什么影响 error C2512 CubeGeometry no appropria
  • 将 2 个字节转换为整数

    我收到一个 2 个字节的端口号 最低有效字节在前 我想将其转换为整数 以便我可以使用它 我做了这个 char buf 2 Where the received bytes are char port 2 port 0 buf 1 port
  • 在 C++ 代码 gdb 中回溯指针

    我在运行 C 应用程序时遇到段错误 在 gdb 中 它显示我的一个指针位置已损坏 但我在应用程序期间创建了 10 万个这样的对象指针 我怎样才能看到导致崩溃的一个 我可以在 bt 命令中执行任何操作来查看该指针的生命周期吗 谢谢 鲁奇 据我
  • WinForms - 加载表单时如何使用 PaintEventArgs 运行函数?

    我试图理解图形 在 Graphics FromImage 文档中 它有这样的示例 private void FromImageImage PaintEventArgs e Create image Image imageFile Image
  • 当我使用可变参数而不是常量参数时,为什么我的内联表 UDF 慢得多?

    我有一个表值内联 UDF 我想过滤该 UDF 的结果以获得一个特定值 当我使用常量参数指定过滤器时 一切都很好 并且性能几乎是瞬时的 当我使用可变参数指定过滤器时 它会花费明显更大的时间块 大约是逻辑读取的 500 倍和持续时间的 20 倍
  • 测验;这个编译了吗?如果是的话它会返回什么(我知道答案)

    我最近发现这个错字 if name find string npos 显然开发者的意思是输入 if name find string npos 但令我惊讶的是发现错误甚至编译 Wall Werror 没有尝试过 pedantic 那么 咖啡
  • WPF DataGrid - 在每行末尾添加按钮

    我想在数据网格的每一行的末尾添加一个按钮 我找到了以下 xaml 但它将按钮添加到开头 有人知道如何在所有数据绑定列之后添加它吗 这会将按钮添加到开头而不是末尾
  • 在 Qt 中播放通知(频率 x)声音 - 最简单的方法?

    Qt 5 1 或更高版本 我需要播放频率为 x 的通知声音 n 毫秒 如果我能像这样组合音调那就太好了 1000Hz 持续 2 秒 然后 3000Hz 持续 1 秒 最简单的方法是使用文件 WAV MP3 例如如此处所述 如何用Qt播放声音
  • 如何测试某些代码在 C++ 中无法编译? [复制]

    这个问题在这里已经有答案了 可能的重复 单元测试编译时错误 https stackoverflow com questions 605915 unit test compile time error 我想知道是否可以编写一种单元测试来验证给
  • 将日期时间显示为 MM/dd/yyyy HH:mm 格式 C#

    在数据库中 日期时间以 MM dd yyyy HH mm ss 格式存储 但是 我想以 MM dd yyyy HH mm 格式显示日期时间 我通过使用 String Format 进行了尝试 txtCampaignStartDate Tex
  • 在 C 中使用 #define 没有任何价值

    If a define没有任何价值地使用 例如 define COMMAND SPI 默认值是0吗 不 它的评估结果为零 从字面上看 该符号被替换为空 然而 一旦你有了 define FOO 预处理器条件 ifdef FOO现在将是真的 另
  • 如何在c中断言两个类型相等?

    在 C 中如何断言两种类型相等 在 C 中 我会使用 std is same 但搜索 StackOverflow 和其他地方似乎只能给出 C 和 C 的结果 在C中没有办法做到这一点吗 请注意 这不是询问变量是否具有某种类型 而是询问两个类

随机推荐

  • 如何用sympy判断一个函数是否连续?

    我需要定义一个函数来检查输入函数在 sympy 的某个点是否连续 我用关键字 连续性 搜索了 sympy 文档 但没有现有的函数 我想也许我应该考虑限制一下 但我不知道该怎么做 def check continuity f var a tr
  • Android:Firebase登录失败密码无效或用户没有密码

    我正在尝试使用 firebase 创建一个带有用户个人资料的简单应用程序 但遇到了问题 注册功能运行良好 我可以在 Firebase 控制台中看到注册帐户 但登录功能运行不佳 我收到 密码无效或用户没有密码 例外 任何人都可以帮我解决这个问
  • 带大括号的结构初始化/赋值

    我定义了一个结构体 如下所示 struct float3 float x float y float z float3 x 0 y 0 z 0 float3 float a float b float c x a y b z c 但在理解初
  • 列出 C/C++ 函数(Unix 中的代码分析)

    无论我们是维护不熟悉的代码还是检查 Apache 模块的实现细节 如果我们能够快速遍历代码并建立对我们正在查看的内容的概述 都会有所帮助 Grep 可以满足我的大部分日常需求 但在某些情况下它却无法满足 这是一个常见的示例 说明它如何提供帮
  • 使用 Matlab 将日志语句写入标准输出

    我们从我们的Jenkins 构建服务器 由于构建可能需要一些时间 因此在 matlab 运行时获得一些日志输出会很好 有没有办法将文本打印到标准输出 disp fprintf 和 java lang System out printline
  • 如何在 UIDatePicker 视图中隐藏未来或过去的日期

    我想设计一个用于设置出生日期的用户界面 为此我选择UIDatePickerView 现在我想将日期限制在 1990 年 1 月 1 日到当前日期之间 它不应显示未来日期和过去日期 目前我正在使用以下代码 NSDateComponents c
  • .net 4.0 中即将推出的“动态”关键字将如何让我的生活变得更好?

    我不太明白它会让我做什么 或者逃脱 两大领域是 使用方法返回模糊类型的 COM 程序集 因此您基本上可以使用后期绑定 使用 DLR 类型 其他用途包括 没有界面的鸭子打字 Silverlight 与主机页面的 DOM 对话 与 xml 文件
  • Hadoop 的 java.lang.VerifyError

    我正在使用 Hadoop 的 java 项目中工作 并且遇到 java lang VerifyError 并且我不知道如何解决它 我看到有人有相同类型的问题但没有答案或解决方案不适用于我的情况 我的课 import java io IOEx
  • 动态扩展应用程序的功能?

    我最近遇到一个way在使用 ASP NET MVC3 4 时开发可插入应用程序模块 我喜欢这种方法的简单性 目前 我的应用程序结构如下 因此 任何想要为我的应用程序开发扩展的人都可以遵循上面的方法tutorial并创建一个保留在Areas文
  • pip 和 conda 有什么区别?

    I know pip是 python 包的包管理器 但是 我在IPython的网站上看到安装使用conda安装 IPython 我可以用吗pip安装IPython 我为什么要使用conda作为另一个 python 包管理器 当我已经有了pi
  • 告诉 gdb 跳过标准文件

    我正在使用 GDB 调试 C 代码 当它进入某个包含标准库对象的对象的构造函数时 它会向我显示这些对象的构造函数 例如std map 以及下面的所有内容 我知道关于next运算符 但我更愿意将任何标准库代码基本上列入黑名单 这永远不是我正在
  • m2e Eclipse indigo 给出错误

    我已经在没有eclipse的情况下在本地设置了Maven项目 它已成功完成 现在我已经下载了 Eclipse indgo 3 7 0 由于 Eclipse indigo 具有 m2e maven 2 eclipse plugin 启用它 E
  • 使用 JAXB 的具有属性和内容的 XML 元素

    如何使用 JAXB 生成以下 XML
  • java中永久持久的Socket连接

    我创建了一个客户端 服务器连接 类似于聊天系统 以前我使用的是while在客户端循环 每次都在等待从控制台读取消息 当然服务器有一个while循环以及永远服务 但现在 我尝试首先在会话开始时创建连接 然后在会话期间偶尔发送消息 以便保持永久
  • 对于不返回任何键列信息的 SelectCommand,不支持 UpdateCommand 的动态 SQL 生成

    我想使用 VB net 中的 DataGridView 更新 编辑数据库 MS Access 中的数据 我使用了这段代码 Dim sadapter As OleDb OleDbDataAdapter Dim sds As DataSet s
  • 如何在scala / play中将casbah mongodb列表转换为json

    我目前正在学习scala和mongodb并使用play 框架 所以当我思考问题时 我会犯各种各样的错误 目前我有一个 scala 对象 它返回通过 casbah 从 mongodb 查询返回的数据库对象列表 如下所示 object Aler
  • PHP 库将 JSON 转换为 CSV?

    我有一个 JSON 服务 需要创建一个脚本将数据导出到 CSV 文件 有没有人可以建议将 JSON 迁移到 CSV 格式的方法或库 这是一个示例格式 但我希望必须改进解决方案才能使用它 service name key value key
  • 警告问题:期望参数 1 为 mysqli_result [重复]

    这个问题在这里已经有答案了 我收到下面列出的以下警告 我想知道如何修复它 Warning mysqli fetch array expects parameter 1 to be mysqli result boolean given on
  • 获取父片段 API 16

    我们都知道getParentFragment of FragmentAPI 17 中引入 那么如果我们想在 API 16 及以下版本中获取父片段怎么办 考虑到我使用的是原生Fragment有支持FragmentStatePagerAdapt
  • 如何测量 .NET 中多个并发线程的代码块(线程)执行时间

    现在我们只使用这样的东西 stopWatch Start try method finally stopWatch Stop 这对于同步方法来说效果很好 但有些方法是异步执行的 因此当多个线程执行时时间会出现偏差 是否有与 System D