Python中的一项微不足道但占用CPU的任务仅在Windows中使用了不到一半的CPU
我正试图在Windows和Unix或OS/X上调试同一个Python 3程序之间的性能问题 虽然我不确定这是问题的根源,但我注意到,如果我在其他空闲的OS/X或Ubuntu机器上执行Python中的一项微不足道但占用CPU的任务仅在Windows中使用了不到一半的CPU,python,performance,Python,Performance,我正试图在Windows和Unix或OS/X上调试同一个Python 3程序之间的性能问题 虽然我不确定这是问题的根源,但我注意到,如果我在其他空闲的OS/X或Ubuntu机器上执行sum(范围(100000000)),我会使用一个内核的所有(95%+)。当在其他空闲的Windows 10上执行此操作时,它只使用一个内核的大约35% 为什么会这样?这取决于这些测量值的来源。windows优于windows中的*nix?任务管理器,OS/X上的top/Activity Monitor,Linux上
sum(范围(100000000))
,我会使用一个内核的所有(95%+)。当在其他空闲的Windows 10上执行此操作时,它只使用一个内核的大约35%
为什么会这样?这取决于这些测量值的来源。windows优于windows中的*nix?任务管理器,OS/X上的
top
/Activity Monitor,Linux上的top
。然而,这种差异太大了(3倍!),我真的不清楚测量工具是否可能产生差异。“windows优于*nix?”不,在本例中,windows的性能比*nix差得多。做同样的计算大约需要三倍的时间,因为它只使用了三分之一的CPU。@Tom漩涡:你确定它使用了一个核心的35%吗?检查Task Manager中的详细信息视图,我可靠地填充了整个内核,在我的机器上(4个内核)显示为25%(因为Windows报告的是可用CPU总量的百分比,而不是一个内核的百分比)。我想知道你是否正在运行一个3核的CPU。另外,旁注:您确定在所有系统上都运行Python3吗?Python2的范围
将生成一个巨大的列表
ofint
,这可能会导致页面文件抖动,并可能降低CPU利用率。