【发布时间】:2025-11-29 19:30:01
【问题描述】:
我想知道,是否有任何可靠的方法可以查看(或测量)我的应用程序的工作分配到服务器内核的情况?想到的唯一(非常不科学的)选项是:
- “观察”任务管理器中的 CPU 图表
- 让应用在每项工作完成后不断向控制台写入
Thread.CurrentThread.ManagedThreadId
肯定有更好的选择吗?
背景:
我的应用程序监听传入的数据包,做一些内存工作,并将内容写入数据库。
我的目标平台是具有四个内核的 Windows Server 机器。我的应用程序的第一个版本显然大量使用了一个内核,而其他三个大部分都处于空闲状态。我使用Task.Factory.StartNew() 部署了第二个版本,试图在每次收到数据包时在其他内核之间分配工作。现在看起来所有内核都比我的第一个应用程序中的单内核忙。
【问题讨论】:
-
@RobertHarvey - 太棒了!谢谢你。如果您想将其发布为答案,我很乐意接受。
标签: c# .net performance parallel-processing task-parallel-library