如何查找 Windows 服务当前正在使用的内核数量?

Posted

技术标签:

【中文标题】如何查找 Windows 服务当前正在使用的内核数量?【英文标题】:How to find the number of cores which are currently being utilized by Windows Service? 【发布时间】:2021-01-09 10:56:42 【问题描述】:

我创建了一个通过 Windows 服务运行的多线程应用程序。早些时候,我的系统中有 2 个核心,我已增加到 6 个核心。即使在增加内核数量之后,我的应用程序的性能也没有得到优化 我尝试了线程和任务来在我的应用程序中实现多线程,但我的应用程序的性能没有显着差异。 如何找到我的应用程序在我的系统中运行或正在使用的线程和内核的数量,以便我可以知道我的所有内核是否都在使用?

【问题讨论】:

您要求的内容比 Environment.ProcessorCount 更具体? “我的应用程序的性能没有显着差异。” - 首先,你确认CPU是瓶颈了吗?如果您的问题是例如受 I/O 限制,有多少内核可用并不重要。 Environment.ProcessorCount 告诉核心的数量,而不是没有使用的操作系统核心 【参考方案1】:

这取决于操作系统的调度程序。您的 Windows 服务并不是机器上唯一运行的服务。操作系统决定如何为所有需要运行的线程分配 CPU 时间。

如果您想让您的应用程序更加“多核友好”,您需要分享有关它的更多详细信息以及它的作用。

【讨论】:

以上是关于如何查找 Windows 服务当前正在使用的内核数量?的主要内容,如果未能解决你的问题,请参考以下文章

如何查找 Google COLAB GPU 中的内核数?

使用命令提示符查找每个 CPU 的 CPU 数和内核数

如何使用 C++ 代码在 Windows 系统中查找物理内核的数量 [重复]

如何从 cmd 中找到当前的 Windows 语言?

在 Windows 中查找扬声器输出的当前音量级别

如何在 Oracle 中查找当前打开的游标