win8 发表于 2022-6-19 11:26

Windows有没软件能把各个软件占用RAM导出到csv/excel里

我总觉得电脑内存占用不太对,粗估感觉资源管理器的内存占用总和似乎和实际占用的内存不一样多,所以想核对一下

win8 发表于 2022-6-19 12:24

本帖最后由 win8 于 2022-6-19 12:30 编辑

我现在用下边的命令可以导出内存占用信息了,但是还是不对劲
tasklist > task.txt
因为加总的内存占用超过了我的物理内存,所以tasklist的内存信息是包含了虚拟内存对嘛?
但是关键是应用占用的数值差别也很大,这是资源管理器和导出信息的对比(当然肯定有时间差,但是这也差得太多了):

所以说edge、文件管理器和evernote到底用了多少内存?

VirMoe 发表于 2022-6-19 13:08

查了一下,tasklist导出的是WorkingSet,资源管理器里显示的是WorkingSetPrivate。
可以自行对比一下,powershell里执行
Get-WmiObject -Class Win32_PerfFormattedData_PerfProc_Process | Select-Object -Property idprocess,name,WorkingSet,WorkingSetPrivate

VirMoe 发表于 2022-6-19 13:10

下面这行可以导出csv到C盘
Get-WmiObject -Class Win32_PerfFormattedData_PerfProc_Process | Select-Object -Property idprocess,name,WorkingSet,WorkingSetPrivate | Export-Csv c:\memory.csv

r_ex 发表于 2022-6-19 13:22

别导了,没有用的,Windows的内存占用只有任务管理器-内存-"已提交"那一项有意义,表示"所有进程占用的虚拟内存之和",其他只有"进程占用的物理内存"这种没有什么用的信息
进程之间有很多共享内存块,但是Windows的统计信息记录的内存块进程数量最大数为7,超过的也只有7
另外页面文件中的内存块无法获得信息

想看详细的只能折腾一下RAMMap和VMMap这两个工具,但是都是用户态的,没什么意义
真想找到问题,要么就微软员工去调试内核,要么就想办法hook所有进程的所有的内存分配,要么就只能一个一个进程试,看"已提交"是什么反应
页: [1]
查看完整版本: Windows有没软件能把各个软件占用RAM导出到csv/excel里