gpt4 book ai didi

python - 访问 CPU/RAM 使用情况(类似于任务管理器,但通过 API!)?

转载 作者:可可西里 更新时间:2023-11-01 14:41:17 25 4
gpt4 key购买 nike

是否有特定的方法可以使用 Windows API 访问“任务管理器”信息?我已经对此事进行了相当多的搜索,但我似乎找不到可以告诉我的 API 调用:

  • 给定进程的 CPU/RAM 使用情况
  • 使用最多 CPU/RAM 的进程

有没有办法通过 Python 或 C++(基本上是通过 Windows API)访问该信息?

这就是我本质上想要做的(用伪代码):

app x = winapi.most_intensive_process
app y = winapi.most_RAM_usage

print x.name
print y.name

最佳答案

您可以使用 psutil 而不是直接调用 Windows API library 这是一个跨平台的库,提供了大量关于进程的信息。它适用于 Windows、Linux、Mac OS、BSD 和 Sun Solaris,并以 32 位和 64 位方式与 2.4 到 3.4 的 python 一起工作。

特别是 Process类有以下有趣的方法:

  • cpu_times :进程从一开始就花费的用户和系统时间。
  • cpu_percent : 自上次调用以来或给定时间间隔内的 CPU 使用率百分比
  • memory_info :有关 Ram 和虚拟内存使用情况的信息。 注意:文档明确指出这些是由 taskmgr.exe 显示的,所以它看起来正是您想要的。
  • memory_info_ex : 扩展内存信息。
  • memory_percent : 进程使用内存的百分比。

要遍历所有进程(例如,为了找到最耗用 CPU/内存的进程),您可以遍历 process_iter。 .


这是您想要实现的目标的简单实现:

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)

在我的系统上运行示例:

In [23]: def most_intensive_process():
...: # psutil < 2.x has get_something style methods...
...: return max(psutil.process_iter(), key=lambda x: x.get_cpu_percent(0))
...:
...: def most_RAM_usage():
...: return max(psutil.process_iter(), key=lambda x: x.get_memory_info()[0])

In [24]: x = most_intensive_process()
...: y = most_RAM_usage()
...:

In [25]: print(x.name, y.name)
firefox firefox

关于python - 访问 CPU/RAM 使用情况(类似于任务管理器,但通过 API!)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23039466/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com