1

我想知道,是否有任何可靠的方法可以查看(或测量)我的应用程序的工作分配到服务器内核的情况?想到的唯一(非常不科学的)选项是:

  1. “目测”任务管理器中的 CPU 图
  2. 让应用程序Thread.CurrentThread.ManagedThreadId在每项工作完成后不断向控制台输出

肯定有更好的选择吗?

背景: 我的应用程序监听传入的数据包,做一些内存工作,并将内容写入数据库。我的目标平台是具有四个内核的 Windows Server 机器。我的应用程序的第一个版本显然大量使用了一个内核,而其他三个大部分都处于空闲状态。我部署了第二个版本Task.Factory.StartNew(),试图在每次收到数据包时在其他内核之间分配工作。现在看起来所有内核都比我的第一个应用程序中的单内核更忙。

4

1 回答 1

2

Concurrency Visualizer 使您能够查看多线程应用程序如何与其自身、硬件、操作系统和计算机上的其他进程进行交互。这些视图提供图形、表格和文本数据,显示程序中的线程与整个系统之间的时间关系。

http://msdn.microsoft.com/en-us/library/dd537632.aspx

于 2012-07-26T15:24:14.053 回答