![如何计算一个进程使用了多少内存?](https://linux22.com/image/1562363/%E5%A6%82%E4%BD%95%E8%AE%A1%E7%AE%97%E4%B8%80%E4%B8%AA%E8%BF%9B%E7%A8%8B%E4%BD%BF%E7%94%A8%E4%BA%86%E2%80%8B%E2%80%8B%E5%A4%9A%E5%B0%91%E5%86%85%E5%AD%98%EF%BC%9F.png)
我想知道一个进程使用了多少累计内存?
我正在分析我的系统在大型复制操作期间的性能。其中,我针对的是几个进程。
我想计算他们在那段时间内使用了多少内存,以及某个进程是否使用了大量内存,我想深入研究它(任何内存泄漏或导致内存开销的代码片段)。
我已尝试使用 xperf 命令。
在 xperf 命令中,我使用了以下内核标志
->MEMORY+MEMINFO+MEMINFO_WS+HARD_FAULTS+VIRT_ALLOC+VAMAP+FOOTPRINT+REFSET
& stackwalk 标志
->PageAccess+PageAccessEx+PageRelease+PageRangeAccess+PageRangeRelease+VirtualAlloc+VirtualFree+HardFault+HeapCreate+HeapFree+HeapAlloc+HeapDestroy+HeapRealloc+PagefileMappedSectionCreate+PagefileMappedSectionDelete
在生成的 etl 中,我可以在左窗格的内存下看到以下选项卡。内存利用率:这没有用,因为它不包含任何与进程相关的数据。
硬故障:进程的页面故障虚拟分配提交生命周期:进程的未完成提交池图:分页数据和非分页数据驻留集:
- 默认
- 内存压力
- 物理内存压力
- 进程私有工作集
请告诉我在内存使用方面需要考虑哪些选项卡/参数。如何使用这些数据来得出有关内存使用情况\内存泄漏\ API 名称的结论,这些名称通过加载符号导致内存利用率更高?