ProcessorCount¶
此模块提供一个命令来确定处理器/核心的数量。
在 CMake 中加载此模块,使用
include(ProcessorCount)
命令¶
此模块提供以下命令
- ProcessorCount¶
确定机器上可用的逻辑 CPU 核心数
ProcessorCount(<variable>)
如果信息可以确定,此命令会将一个名为
<variable>
的变量设置为机器上可用的逻辑 CPU 核心数。如果成功,该变量保证设置为一个正整数(>=1)。如果无法确定处理器数量,则将其设置为 0。目前,此功能已针对 AIX、Cygwin、FreeBSD、Haiku、HPUX、Linux、macOS、QNX、Sun 和 Windows 实现。
此命令提供当前机器上可用计算核心数的近似值,使其可用于并行构建和测试。它旨在帮助充分利用机器,但用户在使用其全部容量进行并行任务之前,应考虑机器上运行的其他工作负载。
3.15 版中有所更改: 在 Linux 上,返回容器 CPU 数量而非主机 CPU 数量。
注意
此模块依赖于系统相关的命令来确定处理器数量,这在某些环境中可能无法始终提供准确的信息。更普遍准确的逻辑 CPU 计数也可以通过 cmake_host_system_information()
获得
cmake_host_system_information(RESULT n QUERY NUMBER_OF_LOGICAL_CORES)
示例¶
在以下示例中,此模块用于 ctest -S
仪表板脚本,以确定用于并行 CTest 构建步骤 的核心数
include(ProcessorCount)
ProcessorCount(n)
if(NOT n EQUAL 0)
set(CTEST_BUILD_FLAGS -j${n})
set(ctest_test_args ${ctest_test_args} PARALLEL_LEVEL ${n})
endif()