是否可以使用ETW获取所有进程和系统的内存统计信息? 记忆统计我的意思是:例如Commited bytes,private bytes,paged pool,working set,… 我找不到任何关于使用xperf获取和查看内存统计信息的信息
记忆统计我的意思是:例如Commited bytes,private bytes,paged pool,working set,…
我找不到任何关于使用xperf获取和查看内存统计信息的信息.它总是关于CPU,磁盘,网络.
有人可能会使用性能计数器来获取这类信息,但如何在一个图表中以图形方式覆盖统计信息(如何关联/同步时间戳)?
Windows 8.1及更高版本的最佳选择是Microsoft-Windows-Kernel-Memory提供程序,它每0.5秒记录一次进程内存信息.有关详情,请参见 https://github.com/google/UIforETW/issues/80. UIforETW默认情况下在可用时启用此功能.您也可以尝试MEMINFO提供商.它提供了系统范围内存压力的概述.它显示了活动列表(当前在使用内存中),待机列表(当前未使用的“有用”页面,如磁盘缓存),以及零和空闲列表(真正的可用内存).这至少可以让你判断一个系统是否内存不足.
您也可以尝试MEMINFO_WS和CONTMEMGEN,但这些都没有记录,所以我真的不知道他们做了什么.它们出现在xperf -providers中,但是当我用它们录制时,我看不到任何新图形出现.显然,微软提供这些提供商但无法查看它们.叹…
如果您想在Windows 7上获得更多内存详细信息 – 例如每个进程的工作集 – 最好的办法是让一个进程运行,定期查询这些数据并在自定义ETW事件中发出它.这在UIforETW中以预先打包的形式提供,它可以每秒查询一组指定进程的工作集.有关如何获取UIforETW,请参阅公告帖子:
https://randomascii.wordpress.com/2015/04/14/uiforetw-windows-performance-made-easier/
UIforETW的Windows 7工作集数据显示在任务名称== WorkingSet下的通用事件中.在Windows 8.1上,OS工作集数据(更详细,更有效地记录)显示在Memory->下.虚拟内存快照.