c# - 如何检测运行 C# 代码时发生的上下文切换次数?

标签 c# multithreading

在 C# 中,是否可以检测在特定线程上执行代码块时发生的上下文切换次数?理想情况下,我想知道我的线程代码被安排了多少次以及安排在哪个 CPU 上。

我知道我可以使用像 Event Tracing for Windows 这样的工具和相关的查看者,但是要获得我想要的数据,这似乎有点复杂。

另外,像 Process Explorer 这样的工具很难判断特定代码块导致了多少次切换。

背景:我正在尝试在 .NET 中测试低级锁原语的实际性能(作为对我最近发表的 blog post 的一些评论的结果。

最佳答案

听起来您可能正在寻找一种编程解决方案,但如果没有,Microsoft 的 Process Explorer工具会很容易地告诉您特定线程的上下文切换次数。

进入该工具后,双击您的进程,选择“线程”选项卡,然后选择您的线程。

.NET 选项卡具有更具体的 .NET 相关性能数据。

关于c# - 如何检测运行 C# 代码时发生的上下文切换次数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/155903/

相关文章:

c# - Microsoft.mshtml.dll 重新分发问题

c# - 如何以编程方式将 UWP 应用程序窗口置于最前面并在窗口最小化时将其最大化

java - ScheduledThreadPoolExecutor afterExecute的runnable.toString不一样

java - Java模拟测试数据库性能

C# 停止 TCP 文件传输

python - 在按下的每个键上实现自动建议

c# - 将 TextBox 的值填充到特定的 Textbox

c# - 在 catch block 中调用异步方法

c# - 为什么 WebClient.DownloadStringTaskAsync() 会阻塞? - 新的异步 API/语法/CTP

Java-启动线程问题