ProcessorCount

ProcessorCount(var)

确定处理器/核心的数量并将值保存在 ${var} 中

如果可以确定信息,则将名为 ${var} 的变量设置为机器上可用的物理核心数。 否则,它被设置为 0。 目前,此功能已针对 AIX、cygwin、FreeBSD、HPUX、Linux、macOS、QNX、Sun 和 Windows 实现。

在版本 3.15 中更改:在 Linux 上,返回容器 CPU 计数而不是主机 CPU 计数。

如果成功,此函数保证返回一个正整数 (>=1)。 如果在确定处理器计数时出现问题,则返回 0。

更准确的物理 CPU 计数通常可以通过 cmake_host_system_information() 获取

cmake_host_system_information(RESULT N
                              QUERY NUMBER_OF_PHYSICAL_CORES)

示例用法,在 ctest -S 仪表板脚本中

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

此函数旨在提供当前机器上可用计算核心数量值的近似值,以便您可以将该值用于并行构建和并行测试。 它旨在帮助尽可能合理地利用机器。 当然,在决定是否要为自己请求机器的全部容量时,应使用对机器上可能同时运行的其他内容的了解。