顶贴!
#31 楼 @testly C/C++ 申请的内存空间在 native heap 中,而 java 申请的内存空间则在 dalvik heap 中。
这个是因为 Android 系统对 dalvik 的 vm heapsize 作了硬性限制,当 java 进程申请的 java 空间超过阈值时,就会抛出 OOM 异常(这个阈值可以是 48M、24M、16M 等,视机型而定),可以通过 adb shell getprop | grep dalvik.vm.heapgrowthlimit 查看此值。
也就是说,程序发生 OMM 并不表示 RAM 不足,而是因为程序申请的 java heap 对象超过了 dalvik vm heapgrowthlimit。也就是说,在 RAM 充足的情况下,也可能发生 OOM。
这样的设计似乎有些不合理,但是 Google 为什么这样做呢?这样设计的目的是为了让 Android 系统能同时让比较多的进程常驻内存,这样程序启动时就不用每次都重新加载到内存,能够给用户更快的响应。迫使每个应用程序使用较小的内存,移动设备非常有限的 RAM 就能使比较多的 app 常驻其中。但是有一些大型应用程序是无法忍受 vm heapgrowthlimit 的限制的
@testly 你还没回答我问题呢
如果加上一些并发,负载等,就是性能测试报告了。
性能报告的曲线展示还没弄出来,有空再看看。
补齐了,才能加精! 不能马虎啊 @snake
@mads 你应该把你这个系列 整理下 然后做个合集。
对于内存的限制是 native+dalvik 不能超过最大限制。
android 程序内存一般限制在 16M,当然也有 24M 的。
这段有问题,
# 查看单个应用程序最大内存限制
adb shell getprop|grep heapgrowthlimit
|[dalvik.vm.heapgrowthlimit]: [96m]
都说了 dalvik 了, 和 native 有个毛关系? @testly
第二篇 没有第一篇给力啊。 再修改修改,放上关键性代码分析。 @testly
#6 楼 @chenhengjie123 升级你的 Safari
为啥我感觉你的发帖都是一模一样呢?
你可以把下载地址也放上来啊 @mingway_hu
我用 docker 搭建了 ELK。感觉如果不熟练的话,效率还是很低的。。
这个的使用场景讲下呗
#65 楼 @vigossjjj 争取做成一个好项目!
#1 楼 @chenhengjie123 图是测试发图发不出的 bug。