VSS- Virtual Set Size
虚拟耗用内存(包含共享库占用的内存)
RSS- Resident Set Size
实际使用物理内存(包含共享库占用的内存)
PSS- Proportional Set
Size 实际使用的物理内存(比例分配共享库占用的内存)
USS- Unique Set Size
进程独自占用的物理内存(不包含共享库占用的内存)
一般来说内存占用大小有如下规律:VSS >= RSS >= PSS >= USS
内存优化点:
1、String的intern
经过intern的String在java1.6还是被放在perm gen的。这样能够优化String对象的使用(防止相同的字符串在堆上占用多份内存)。但是过多的intern会导致永久存储区越来越大(可能会导致永久存储区溢出)。而且,经过intern的String,如果开发者能够保证自己使用的就是intern的字符串的话,那么他们就可以使用== 来判等了。这篇文章作者做过测试,==比equals快5倍左右。
------------------------------------------
Internalized strings are released if they are no longer referenced.
intern过的String如果没有被reference,也是会被垃圾回收的。
------------------------------------------
一种好的方法,既可以缓存String对象,让你所用的STring对象在内存中只有一份,而且还不占用永久存储区,可以自己使用hashmap来做。看看这篇。
---------------------------------------------
但是,如果使用的是java1.7,那么intern的String是存储在堆上的。就不用管永久存储区溢出的问题了。看下面:
If you are running Java 7, internalized Strings are stored in the heap (assuming you are using the HotSpot JVM). So that removes
the problem of running out of PermGen space.
--------------------------------------
http://android-developers.blogspot.com/2011/03/memory-analysis-for-android.html
分享到:
相关推荐
Android开发辅助工具fps,topActivity,activity启动耗时,电量cpu内存分析。适配全机型悬浮窗权限。
的 Android SDK 提供了在 Android 平台上使用 JaVa 语言进行 Android 应用开发必须的工具和 API 接口。 特性 • 应用程序框架 支持组件的重用与替换 • Dalvik Dalvik Dalvik Dalvik 虚拟机 专为移动设备优化 • ...
android安卓app开发之如何查看cpu使用率和内存泄漏.zip
[14本经典Android开发教程]-3-Android SDK 中文开发文档 什么是 Android? Android 是一个专门针对移动设备的软件集,它包括一个操作系统,中间件和一些重要的应用程序。Beta版的 Android SDK 提供了在Android 平台上...
主要从5个模块入手: 1 java的GC机制以及Android最大堆内存分配 2 Monitors 3 DDMS/Traceview 4 Mat 5 LeakCanary 6 开发中要注意的点。
Android开发已经成为移动开发热门领域,Android应用程序中内存使用的问题却经常容易被忽视,部分开发者对Java垃圾回收机制认识模糊,使得内存泄漏成为Android应用开发中十分隐秘但又确实存在的应用安全问题,对内存...
在Android里,程序内存被分为2部分:native和dalvik,dalvik就是我们普通的Java使用内存,分析堆栈的时候使用的内存。我们创建的对象是在这里面分配的,对于内存的限制是 native+dalvik 不能超过最大限制. Android ...
安卓开发 内存泄露 生成hprof 使用MAT工具分析 很详细 很傻瓜的说明 有图有真相
[14本经典Android开发教程] 8 Linux内核阅读心得体会 读核感悟 2 读核感悟 Linux内核启动 内核的生成 2 读核感悟 Linux内核启动 从hello world说起 3 读核感悟 Linux内核启动 BIOS 5 读核感悟 Linux内核启动 setup...
对android应用开发的总结,GC内存回收的原来和算法,JVM内存管理的方式
匿名共享内存分析的也很好。 情况分析应该是学毛德操老师的,作者确实做到了,作者在讲解时,会从java层到native层,再到linux kernel中整个串起来讲。使读者可以完全了解某些子系统的运行机制 内容简介 · · · ...
13-性能分析之hierarchyviewer使用 14-性能分析之Lint规范代码 15-性能分析之突破内存不足 16-性能分析之内存检测工具介绍 与XMPP相关试题 17-什么是XMPP和XMPP的数据格式 18-及时聊天的展示形式 19-TCP和UDP...
android内存管理机制分析,帮助你了解内存管理原理,更好的开发程序
MAT内存分析工具,如果用Android Studio进行开发则需要单独下载它
2.5 开发Android应用程序来使用硬件访问服务 第3章 智能指针 3.1 轻量级指针 3.1.1 实现原理分析 3.1.2 应用实例分析 3.2 强指针和弱指针 3.2.1 强指针的实现原理分析 3.2.2 弱指针的实现原理分析 3.2.3 ...
实验报告 (2016—2017学年 第 学期) 课程名称 嵌入式应用开发 实验名称 Android开发环境与第一个Android程序 专 业 电子信息工程 年 级 组 号 学号 姓名 学号 姓名 指导教师 实验日期 "实验目的与要求: " "1....
《移动开发经典丛书·Android C++高级编程:使用NDK》介绍了原生应用开发、可用的原生API以及故障排除技术的详细叙述,包括用按步骤的指导和屏幕截图以帮助Android开发人员迅速达到开发原生应用的目的。...
在android开发中,jvm具有自动回收的机制,会不定时不定期的去清理无用的被占用的内存,而在理论上不需要再被使用的内存,在实际中却还持有对这一块内存的引用,导致GC时,不会被回收释放掉,这部分内存就会随着程序...
讲解android开发过程中遇到的内存问题,场景案例分析,
本书是一本Android进阶类书籍,采用理论、源码和实践相结合的方式来阐述高水准的Android应用开发要点。本书从三个方面来组织内容。第一,介绍Android开发者不容易掌握的一些知识点;第二,结合Android源代码和应用层...