<p>您可以使用<a href="https://code.google.com/p/psutil/" rel="nofollow">^{<cd1>}</a>库,而不是直接调用windowsapi,它是一个跨平台的库,提供有关进程的大量信息。
它可以在Windows、Linux、macos、BSD和sunsolaris上运行,并可以在python 2.4到3.4之间以32位和64位的方式工作。在</p>
<p>尤其是它的<a href="https://pythonhosted.org/psutil/#psutil.Process" rel="nofollow">^{<cd2>}</a>类有以下有趣的方法:</p>
<ul>
<li><a href="https://pythonhosted.org/psutil/#psutil.Process.cpu_times" rel="nofollow">^{<cd3>}</a>:进程从一开始就花费的用户和系统计时。在</li>
<li><a href="https://pythonhosted.org/psutil/#psutil.Process.cpu_percent" rel="nofollow">^{<cd4>}</a>:自上次调用后或给定间隔内cpu利用率的百分比</li>
<li><a href="https://pythonhosted.org/psutil/#psutil.Process.memory_info" rel="nofollow">^{<cd5>}</a>:关于Ram和虚拟内存使用的信息。<strong>注意</strong>:文档明确指出这些是<code>taskmgr.exe</code>所显示的,因此它看起来正是您想要的。在</li>
<li><a href="https://pythonhosted.org/psutil/#psutil.Process.memory_info_ex" rel="nofollow">^{<cd7>}</a>:扩展内存信息。在</li>
<li><a href="https://pythonhosted.org/psutil/#psutil.Process.memory_percent" rel="nofollow">^{<cd8>}</a>:进程使用的内存百分比。在</li>
</ul>
<p>要遍历所有进程(例如,为了找到最需要CPU/内存的进程),可以只迭代<a href="https://pythonhosted.org/psutil/#psutil.process_iter" rel="nofollow">^{<cd9>}</a>。在</p>
<hr/>
<p>以下是您想要实现的简单实现:</p>
<pre><code>import psutil
def most_intensive_process():
return max(psutil.process_iter(), key=lambda x: x.cpu_percent(0))
def most_RAM_usage():
return max(psutil.process_iter(), key=lambda x: x.memory_info()[0])
x = most_intensive_process()
y = most_RAM_usage()
print(x.name)
print(y.name)
</code></pre>
<p>在我的系统上运行的示例:</p>
^{pr2}$