我想知道,有没有可靠的方式来查看(或测量)我的应用程序的工作分配到服务器核心的程度如何?想到的唯一(非常不科学的)选择是:
Thread.CurrentThread.ManagedThreadId
当然有更好的选择吗?
背景
我的应用程序侦听传入的数据包,执行一些内存工作,并将内容写入数据库。
我的目标平台是具有四个核心的Windows Server计算机。我的应用程序的第一个版本显然使用了一个核心,其他三个大部分都是空闲的。我使用Task.Factory.StartNew()
部署了第二个版本,试图在每次收到数据包时在其他核心之间分配工作。现在看起来所有核心比我的第一个应用程序中的单核心更繁忙。
答案 0 :(得分:2)
Concurrency Visualizer使您可以查看您的 多线程应用程序与自身,硬件, 操作系统和计算机上的其他进程。这些观点 提供显示时间的图形,表格和文本数据 程序中的线程与系统之间的关系 整体。