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 计数。

注意

此模块依赖于系统特定的命令来确定处理器数量,这些命令在某些环境中可能无法始终提供准确的信息。使用 cmake_host_system_information() 也可以获得更通用的逻辑 CPU 计数。

cmake_host_system_information(RESULT n QUERY NUMBER_OF_LOGICAL_CORES)

示例

在下面的示例中,此模块在 ctest -S dashboard 脚本中使用,以确定用于并行 CTest Build Step 的核心数量。

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()