在python中查看app的cpu和内存占用情况的代码
时间: 2023-10-18 11:28:38 浏览: 120
同样使用 `psutil` 库,你可以通过以下代码来查看指定应用的CPU和内存占用情况:
```python
import psutil
# 获取所有进程信息
processes = list(psutil.process_iter())
for process in processes:
try:
# 获取进程名称
name = process.name()
# 判断进程是否为指定应用
if name == "应用名称":
# 获取CPU占用率
cpu_percent = process.cpu_percent(interval=1)
print("应用CPU占用率:{}%".format(cpu_percent))
# 获取内存占用情况
mem_info = process.memory_info()
mem_rss = mem_info.rss # 非交换内存大小
mem_vms = mem_info.vms # 虚拟内存大小
print("应用内存占用情况:")
print("非交换内存大小:{}MB".format(round(mem_rss/(1024*1024), 2)))
print("虚拟内存大小:{}MB".format(round(mem_vms/(1024*1024), 2)))
except (psutil.NoSuchProcess, psutil.AccessDenied, psutil.ZombieProcess):
pass
```
注意:将代码中的 `"应用名称"` 修改为你想要查看的应用程序的名称即可。如果你不知道应用程序的名称,可以使用 `psutil` 库提供的 `pid_exists` 方法来判断指定包名的应用是否在运行:
```python
import psutil
package_name = "com.example.app"
pid = None
for process in psutil.process_iter():
try:
# 获取进程名称和进程ID
name = process.name()
ppid = process.ppid()
# 判断进程是否为指定应用
if name == "app_process32" and ppid == 1:
cmdline = process.cmdline()
if package_name in " ".join(cmdline):
pid = process.pid
break
except (psutil.NoSuchProcess, psutil.AccessDenied, psutil.ZombieProcess):
pass
if pid is None:
print("应用未运行")
else:
print("应用正在运行,进程ID:{}".format(pid))
```
注意:将代码中的 `"com.example.app"` 修改为你想要查看的应用程序的包名即可。
阅读全文