Python psutil windows进程内存使用率

Python psutil windows进程内存使用率,python,ram,psutil,Python,Ram,Psutil,我的目标只是列出占用内存最多的5个进程,以及它们“使用”的内存量。我已经阅读了文档,似乎我想要的是process.memory_info().rss,但是这个数字比windows任务管理器告诉我的“私有工作集中”的数字要小得多 即使我列出了memory\u info的全部内容,也没有一个值接近任务管理器的值 通过阅读Giampalo的文章,我意识到这是一个复杂的话题,我对系统内存知之甚少。然而,我需要的简单性是从psutil中获得一个与windows任务管理器匹配的数字(我不需要所有其他功能)。

我的目标只是列出占用内存最多的5个进程,以及它们“使用”的内存量。我已经阅读了文档,似乎我想要的是
process.memory_info().rss
,但是这个数字比windows任务管理器告诉我的“私有工作集中”的数字要小得多

即使我列出了
memory\u info
的全部内容,也没有一个值接近任务管理器的值

通过阅读Giampalo的文章,我意识到这是一个复杂的话题,我对系统内存知之甚少。然而,我需要的简单性是从psutil中获得一个与windows任务管理器匹配的数字(我不需要所有其他功能)。我如何得到/计算这个

示例

from pprint import pprint as pp
import psutil

procs = [(proc.info['name'], proc.info['memory_full_info']) for proc in psutil.process_iter(attrs=['name', 'memory_full_info'])]

pp(procs)
为“AfterFX.exe”提供以下数据:


然而任务管理器给了我:AfterFX.exe 50561764 K

我在用手机写东西,所以我无法将特定的文档链接到你,但内存已满信息()。uss应该是你要找的

谢谢Giampaolo,也许这是解决方案,但当我尝试它时,我得到了一个AccessDenied错误。不用说,我没有管理员权限……好吧,用
psutil.process\u iter(attrs=['memory\u full\u info'])打印列表理解。
以某种方式让我绕过了权限,但仍然没有给我一个准确的数字。对于我的顶级进程,我得到了“uss=376672256”,但task mgr给了我50561776 K。有趣的是,这比其他进程低,但task manager(从逻辑上我知道)是我的“最大”进程。在Windows psutil上,它从进程\内存\计数器\结构中公开了不同的度量。taskmgr.exe应使用以下选项之一:
('AfterFX.exe', pfullmem(rss=4294967295L, vms=4294967295L, num_page_faults=42058243, peak_wset=4294967295L, wset=4294967295L, peak_paged_pool=2791656, paged_pool=2657304, peak_nonpaged_pool=13270384, nonpaged_pool=13147944, pagefile=4294967295L, peak_pagefile=4294967295L, private=4294967295L, uss=376668160L)),