我想用Python知道本地机器上cpu的数量。当使用一个优化伸缩的仅用户空间的程序调用时,结果应该是user/real作为时间(1)的输出。


当前回答

如果你想知道物理内核的数量(不是虚拟超线程内核),这里有一个独立于平台的解决方案:

psutil.cpu_count(logical=False)

https://github.com/giampaolo/psutil/blob/master/INSTALL.rst

注意,logical的默认值是True,所以如果你想包含超线程核心,你可以使用:

psutil.cpu_count()

这将给出与os.cpu_count()和multiprocessing.cpu_count()相同的数字,这两个都没有逻辑关键字参数。

其他回答

不知道如何添加到代码或回复消息,但这里有对jython的支持,你可以在放弃之前添加进去:

# jython
try:
    from java.lang import Runtime
    runtime = Runtime.getRuntime()
    res = runtime.availableProcessors()
    if res > 0:
        return res
except ImportError:
    pass

Python 3.4+: os.cpu_count()。

multiprocessing.cpu_count()是根据这个函数实现的,但如果os.cpu_count()返回None(“不能确定cpu数量”)则会引发NotImplementedError。

如果你有版本为>= 2.6的python,你可以简单地使用

import multiprocessing

multiprocessing.cpu_count()

http://docs.python.org/library/multiprocessing.html#multiprocessing.cpu_count

对于python 3.4以上版本,可以使用

import os
os.cpu_count()

如果你正在寻找linux命令nproc的等价物。你有这个选项

len(os.sched_getaffinity(0))

如果您正在寻找打印系统中的核数。

试试这个:

import os 
no_of_cores = os.cpu_count()
print(no_of_cores)

这应该会有所帮助。