py-cpuinfo
是一个用于获取 CPU 信息的 Python 库。它可以帮助你获取 CPU 的详细信息,如 CPU 型号、核心数、频率、缓存大小等。以下是对 py-cpuinfo
模块的详细介绍:
安装
你可以使用 pip
来安装 py-cpuinfo
库:
pip install py-cpuinfo
基本使用
安装完成后,你可以使用 py-cpuinfo
来获取 CPU 信息。以下是一个简单的示例:
import cpuinfo
# 获取 CPU 信息
info = cpuinfo.get_cpu_info()
# 打印 CPU 信息
for key, value in info.items():
print(f"{key}: {value}")
返回的字段
cpuinfo.get_cpu_info()
返回一个字典,包含以下常见的键值对:
-
python_version
: Python 解释器的版本信息。 -
cpuinfo_version
:py-cpuinfo
库的版本信息。 -
cpuinfo_version_string
:py-cpuinfo
库的版本字符串。 -
arch
: CPU 架构(如X86_64
、ARM_8
)。 -
bits
: CPU 位数(如64
)。 -
count
: CPU 核心数。 -
arch_string_raw
: 原始的 CPU 架构字符串。 -
flags
: CPU 支持的指令集标志。 -
vendor_id_raw
: 原始的 CPU 供应商 ID。 -
brand_raw
: 原始的 CPU 品牌字符串。 -
hz_advertised_friendly
: 广告频率(友好的字符串格式)。 -
hz_actual_friendly
: 实际频率(友好的字符串格式)。 -
hz_advertised
: 广告频率(元组格式)。 -
hz_actual
: 实际频率(元组格式)。 -
l2_cache_size
: L2 缓存大小。 -
l3_cache_size
: L3 缓存大小。 -
l1_data_cache_size
: L1 数据缓存大小。 -
l1_instruction_cache_size
: L1 指令缓存大小。
示例输出
格式化输出如下所示:
{
'python_version': '3.11.7.final.0 (64 bit)',
'cpuinfo_version': [9, 0, 0],
'cpuinfo_version_string': '9.0.0',
'arch': 'ARM_8',
'bits': 64,
'count': 8,
'arch_string_raw': 'aarch64',
'flags': ['aes', 'asimd', 'asimddp', 'asimdhp', 'asimdrdm', 'atomics', 'cpuid', 'crc32', 'dcpop', 'evtstrm', 'fp', 'fphp', 'lrcpc', 'pmull', 'sha1', 'sha2'],
'vendor_id_raw': 'ARM',
'brand_raw': 'Cortex-A55',
'hz_advertised_friendly': '2.3040 GHz',
'hz_actual_friendly': '2.3040 GHz',
'hz_advertised': [2304000000, 0],
'hz_actual': [2304000000, 0],
'l2_cache_size': 1048576,
'l3_cache_size': 3145728,
'l1_data_cache_size': 262144,
'l1_instruction_cache_size': 262144
}
cpuinfo.get_cpu_info()
返回的字典包含了详细的 CPU 信息。以下是对每个字段的详细解释:
1. python_version
-
解释: Python 解释器的版本信息。
-
示例值:
'3.11.7.final.0 (64 bit)'
-
说明: 表示当前使用的 Python 版本是 3.11.7,并且是 64 位版本。
2. cpuinfo_version
-
解释:
py-cpuinfo
库的版本信息。 -
示例值:
[9, 0, 0]
-
说明: 表示
py-cpuinfo
库的版本是 9.0.0。
3. cpuinfo_version_string
-
解释:
py-cpuinfo
库的版本字符串。 -
示例值:
'9.0.0'
-
说明: 表示
py-cpuinfo
库的版本是 9.0.0。
4. arch
-
解释: CPU 架构。
-
示例值:
'ARM_8'
-
说明: 表示 CPU 架构是 ARMv8。
5. bits
-
解释: CPU 的位数。
-
示例值:
64
-
说明: 表示 CPU 是 64 位的。
6. count
-
解释: CPU 核心数。
-
示例值:
8
-
说明: 表示 CPU 有 8 个核心。
7. arch_string_raw
-
解释: 原始的 CPU 架构字符串。
-
示例值:
'aarch64'
-
说明: 表示 CPU 架构是
aarch64
。
8. flags
-
解释: CPU 支持的指令集标志。
-
示例值:
['aes', 'asimd', 'asimddp', 'asimdhp', 'asimdrdm', 'atomics', 'cpuid', 'crc32', 'dcpop', 'evtstrm', 'fp', 'fphp', 'lrcpc', 'pmull', 'sha1', 'sha2']
-
说明: 表示 CPU 支持的指令集,如 AES、ASIMD、CRC32 等。
9. vendor_id_raw
-
解释: 原始的 CPU 供应商 ID。
-
示例值:
'ARM'
-
说明: 表示 CPU 供应商是 ARM。
10. brand_raw
-
解释: 原始的 CPU 品牌字符串。
-
示例值:
'Cortex-A55'
-
说明: 表示 CPU 品牌是 Cortex-A55。
11. hz_advertised_friendly
-
解释: 广告频率(友好的字符串格式)。
-
示例值:
'2.3040 GHz'
-
说明: 表示 CPU 的广告频率是 2.3040 GHz。
12. hz_actual_friendly
-
解释: 实际频率(友好的字符串格式)。
-
示例值:
'2.3040 GHz'
-
说明: 表示 CPU 的实际频率是 2.3040 GHz。
13. hz_advertised
-
解释: 广告频率(元组格式)。
-
示例值:
[2304000000, 0]
-
说明: 表示 CPU 的广告频率是 2304000000 Hz(2.3040 GHz)。
14. hz_actual
-
解释: 实际频率(元组格式)。
-
示例值:
[2304000000, 0]
-
说明: 表示 CPU 的实际频率是 2304000000 Hz(2.3040 GHz)。
15. l2_cache_size
-
解释: L2 缓存大小。
-
示例值:
1048576
-
说明: 表示 L2 缓存大小是 1048576 字节(1 MB)。
16. l3_cache_size
-
解释: L3 缓存大小。
-
示例值:
3145728
-
说明: 表示 L3 缓存大小是 3145728 字节(3 MB)。
17. l1_data_cache_size
-
解释: L1 数据缓存大小。
-
示例值:
262144
-
说明: 表示 L1 数据缓存大小是 262144 字节(256 KB)。
18. l1_instruction_cache_size
-
解释: L1 指令缓存大小。
-
示例值:
262144
-
说明: 表示 L1 指令缓存大小是 262144 字节(256 KB)。
通过 cpuinfo.get_cpu_info()
获取的 CPU 信息字典包含了详细的 CPU 信息,如架构、位数、核心数、频率、缓存大小等。这些信息可以帮助你了解当前系统的 CPU 性能和特性。