我想知道,是否有任何可靠的方法可以查看(或测量)我的应用程序的工作分配到服务器内核的情况?想到的唯一(非常不科学的)选项是:
- “目测”任务管理器中的 CPU 图
- 让应用程序
Thread.CurrentThread.ManagedThreadId
在每项工作完成后不断向控制台输出
肯定有更好的选择吗?
背景:
我的应用程序监听传入的数据包,做一些内存工作,并将内容写入数据库。我的目标平台是具有四个内核的 Windows Server 机器。我的应用程序的第一个版本显然大量使用了一个内核,而其他三个大部分都处于空闲状态。我部署了第二个版本Task.Factory.StartNew()
,试图在每次收到数据包时在其他内核之间分配工作。现在看起来所有内核都比我的第一个应用程序中的单内核更忙。