Tencent / loli_profiler

Memory instrumentation tool for android app&game developers.
Other
610 stars 76 forks source link

长时间运行,发现meminfo的nativeheap和我自己累加的不一样,是否是swapdirty未记录导致? #11

Closed grystudy closed 3 years ago

grystudy commented 3 years ago

引用网上的资料中的一句话: PSS中已经包含了Private Dirty和Private Clean,但是没包含swapped dirty,所以最终衡量你的进程对物理内存的占用应该是取PSS+Swapped Dirty。

但是看loli的源码中 折线图里面 nativeHeap读的是meminfo dump里的 private dirty 或者psstotal 反正代码应该是没计算 swapped dirty。

这里是否应该加上swapped dirty的值呢?

sindney commented 3 years ago

你好,

折线图本意是想有一个参考,比如大致知道哪个时候内存突然涨了、或者下降了 折线图本身如你所说就是简单的meminfo里private dirty部分的内存,对游戏来讲(我只熟悉手机游戏app开发 。。。)我们代码可控的大部分内存都是private dirty部分(毕竟clean或者swapped都是从时间上讲短期内都没什么贡献的代码、内存) 因此用来看整体的升降就够了,这样就能在时间轴上托一个选择框只看增长、下降时抓到的malloc或者自己hook的接口的数据 来分析为什么上升、下降

当然你说的没错,加上swap来统计整体pss是更准确的 有时间了我会考虑加上swap,或者如果你有时间可以提pr哈,我们接受pr的

感谢

grystudy commented 3 years ago

明白了