在 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/