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()
此函式旨在提供目前機器上可用運算核心數量的近似值,以便您可以使用該值進行平行建置和平行測試。 其目的在於協助盡可能利用機器的合理容量。 當然,在決定是否要求機器完全容量供您自己使用時,應考量同時可能在機器上執行的其他作業。