- 浏览: 168486 次
- 性别:
- 来自: 杭州
文章分类
最新评论
-
natan:
和楼主问题一样 添加动画后 总是从屏幕的最上或最底部 出现
PopupWindow的显示隐藏配置动画 -
shenya2:
...
js的this指针理解 -
jonson:
就是用了它的判空函数而已,直接 判断也是可以的。oldFile ...
JAVA高效文件内容比较 -
jonson:
我的是android的项目,这个类是属于android.jar ...
JAVA高效文件内容比较 -
wangh8:
TextUtils这个类提示找不到
JAVA高效文件内容比较
top | grep app名称
ps | grep app名称
procrank | grep app名称
dumpsys meminfo app名称
前两个命令只能查到VSS RSS内存占用信息
而后面两个命令可以查出 PSS USS内存占用.
dumpsys meminfo 可以查出native和dalvik分别占用多少内存
dumpsys 用来给出手机中所有应用程序的信息,并且也会给出现在手机的状态。
dumpsys [Option]
meminfo 显示内存信息
cpuinfo 显示CPU信息
account 显示accounts信息
activity 显示所有的activities的信息
window 显示键盘,窗口和它们的关系
wifi 显示wifi信息
Terms
- VSS - Virtual Set Size 虚拟耗用内存(包含共享库占用的内存)
- RSS - Resident Set Size 实际使用物理内存(包含共享库占用的内存)
- PSS - Proportional Set Size 实际使用的物理内存(比例分配共享库占用的内存)
- USS - Unique Set Size 进程独自占用的物理内存(不包含共享库占用的内存)
一般来说内存占用大小有如下规律:VSS >= RSS >= PSS >= USS
Overview
The aim of this post is to provide information that will assist in interpreting memory reports from various tools so the true memory usage for Linux processes and the system can be determined.
Android has a tool called procrank (/system/xbin/procrank), which lists out the memory usage of Linux processes in order from highest to lowest usage. The sizes reported per process are VSS, RSS, PSS, and USS.
For the sake of simplicity in this description, memory will be expressed in terms of pages, rather than bytes. Linux systems like ours manage memory in 4096 byte pages at the lowest level.
VSS (reported as VSZ from ps) is . This size also includes memory that may not be resident in RAM like mallocs that have been allocated but not written to. VSS is of very little use for determing real memory usage of a process.
RSS is the. RSS can be misleading, because it reports the total all of the shared libraries that the process uses, even though a shared library is only loaded into memory once regardless of how many processes use it. RSS is not an accurate representation of the memory usage for a single process.
PSS , i.e. if three processes all use a shared library that has 30 pages, that library will only contribute 10 pages to the PSS that is reported for each of the three processes. PSS is a very useful number because when the PSS for all processes in the system are summed together, that is a good representation for the total memory usage in the system. When a process is killed, the shared libraries that contributed to its PSS will be proportionally distributed to the PSS totals for the remaining processes still using that library. In this way PSS can be slightly misleading, because when a process is killed, PSS does not accurately represent the memory returned to the overall system.
USS is . USS is an extremely useful number because it indicates the true incremental cost of running a particular process. When a process is killed, the USS is the total memory that is actually returned to the system. USS is the best number to watch when initially suspicious of memory leaks in a process.
For systems that have Python available, there is also a nice tool called smem that will report memory statistics including all of these categories.
# procrank
procrank
PID Vss Rss Pss Uss cmdline
481 31536K 30936K 14337K 9956K system_server
475 26128K 26128K 10046K 5992K zygote
526 25108K 25108K 9225K 5384K android.process.acore
523 22388K 22388K 7166K 3432K com.android.phone
574 21632K 21632K 6109K 2468K com.android.settings
521 20816K 20816K 6050K 2776K jp.co.omronsoft.openwnn
474 3304K 3304K 1097K 624K /system/bin/mediaserver
37 304K 304K 289K 288K /sbin/adbd
29 720K 720K 261K 212K /system/bin/rild
601 412K 412K 225K 216K procrank
1 204K 204K 185K 184K /init
35 388K 388K 182K 172K /system/bin/qemud
284 384K 384K 160K 148K top
27 376K 376K 148K 136K /system/bin/vold
261 332K 332K 123K 112K logcat
33 396K 396K 105K 80K /system/bin/keystore
32 316K 316K 100K 88K /system/bin/installd
269 328K 328K 95K 72K /system/bin/sh
26 280K 280K 93K 84K /system/bin/servicemanager
45 304K 304K 91K 80K /system/bin/qemu-props
34 324K 324K 91K 68K /system/bin/sh
260 324K 324K 91K 68K /system/bin/sh
600 324K 324K 91K 68K /system/bin/sh
25 308K 308K 88K 68K /system/bin/sh
28 232K 232K 67K 60K /system/bin/debuggerd
发表评论
-
密钥散列生成命令
2018-09-05 21:37 1786密钥散列生成命令 keytool -exportce ... -
JavaDoc命令使用
2018-07-26 20:43 655为了规范项目的文档化,要求组员编写规范的javadoc,最终打 ... -
Java反射demo
2018-01-10 09:33 534java反射学习代码 反射调用类的静态私有成员变量的一个方法 ... -
android 语言简写对应表
2015-06-08 14:40 1253Language / Locale ... -
PMD usage
2015-05-18 19:06 0D:\java-static-analysis\pmd-bin ... -
java 分割字符串
2014-12-30 19:57 1077碰到一个字符串 “A|B” 需要通过'|'来分割这个字符串 调 ... -
google广告封装类
2014-12-18 17:02 1481最近在接入google广告模块,封装了一个广告的Fragmen ... -
工程加入google service无法生成dex
2014-12-15 20:47 1634需要接入google广告,碰到一系列问题。 加入之后编apk包 ... -
MediaPlayer 错误码(1,-19)
2014-10-27 15:32 3134我在使用MediaPlayer + SurfaceView ... -
如何在做转屏的时候不销毁当前Activity
2014-10-23 14:00 678For API 12 and below: add an ... -
Using HTML in TextView
2014-08-23 18:54 0There is exact question Using H ... -
启动google play并进入指定app主界面
2014-08-23 14:25 3733如何通过INTENT调用启动google play商店并且 ... -
PopupWindow的显示隐藏配置动画
2014-08-16 17:23 3415如果对PopupWindow的显示隐藏过程配置动画。 有几 ... -
android strings.xml转义字符收集
2014-08-15 16:41 1312以下为XML标志符的数字和字符串转义符 " ... -
android 开发内存分析
2014-08-13 11:06 0使用MAT进行内存分析。 首先,安装MAT,可以是ecli ... -
android多国语言使用
2014-06-23 17:30 0多国语言:在res目录下建立不同名称的values文件来调用 ... -
java dump bitmap byte content
2014-06-09 18:07 1056如何dump bitmap数据到文件。有时候需要逐位分析图 ... -
android 通过intent调用短消息的正确方法
2014-04-19 23:44 785今天使用到用INTENT调用短消息,在网上搜索了都不正确。看 ... -
UCDetector: -------java代码引用静态检查工具介绍
2014-04-16 19:45 2430UCDetector: Unnecessary Code D ... -
SurfaceView receive multi surfaceChanged event problem.
2014-04-14 16:20 741Have get a problem: receive ...
相关推荐
**五、MAT与Android内存优化** MAT在Android开发中的应用主要是查找和修复内存泄漏,优化对象生命周期管理,减少内存占用,提升应用性能。开发者应定期进行内存分析,特别是在处理大量数据或长时间运行的应用中。 ...
理解Android内存机制,掌握内存监控工具的使用,结合实际项目不断优化代码,是每个Android开发者必备的技能。定期进行内存分析,对应用进行压力测试,及时发现和修复问题,可以有效提升应用的质量和用户体验。
"获取Android内存占用工具" 提供了一种简便的方法来监控Android设备的内存状态。下面我们将详细探讨如何使用这个工具,以及它背后的原理。 首先,你需要将Android设备通过USB连接到电脑,并确保已经开启了USB调试...
"mac_mat android内存泄漏分析工具"就是这样一个针对Android平台的工具,特别适合在Mac环境下对应用进行内存泄漏检测。 MAT(Memory Analyzer Tool)是由Eclipse基金会开发的一个强大的Java内存分析工具。尽管主要...
以下是对Android内存分析工具的详细阐述: 1. **内存分析的重要性** - **性能优化**:通过内存分析,可以发现不必要的内存占用,减少内存浪费,提升应用运行速度。 - **防止内存泄漏**:内存泄漏可能导致应用耗尽...
"Android内存分析工具",尤其是Eclipse的MAT(Memory Analyzer Tool)插件,正是解决这类问题的重要利器。 MAT是IBM提供的一款强大的Java内存分析工具,它不仅适用于Android开发,也适用于任何基于Java的平台。MAT...
开发者可以使用这些数据来分析应用的内存占用、查找内存泄漏、或者比较不同运行时刻的内存状态。例如,如果发现某个应用的内存占用持续增长,可能表明存在内存泄漏问题,需要进一步检查应用的代码和资源管理。 在...
MAT(Memory Analyzer Tool)是一款由Eclipse基金会开发的专业Java堆内存分析工具,它同样适用于Android应用的内存管理。MAT可以帮助开发者识别内存泄漏、查找对象生命周期问题以及优化内存使用效率。 标题中的...
### Android应用内存占用测试 #### 一、内存占用的重要性 对于Android应用而言,优化内存占用是非常重要的。因为智能手机的RAM(随机访问存储器)资源是有限的,这意味着单个应用程序的内存占用越小,手机就能运行...
如果一个线程创建了大量的对象但没有释放,可能会导致该线程所在的应用进程内存占用过高。因此,合理管理线程和对象生命周期对于防止内存泄漏至关重要。 在深入分析内存泄漏时,阅读《Android系统原理与开发要点...
"Android-Android开发辅助工具fpstopActivityactivity启动耗时电量cpu内存分析"是一个专为开发者设计的工具,它可以帮助开发者监测和分析应用程序的运行状态,以便找出可能存在的性能瓶颈,提高用户体验。这个工具...
### Android内存分析:深入理解与优化策略 #### 引用未释放导致的内存泄漏 **1.1 注册未取消导致的内存泄漏** 在Android开发过程中,注册未取消是一种非常典型的内存泄漏场景,尤其当涉及到跨应用或服务的交互时...
导出的html文件包含了根据bugreport数据得出的图表和分析结论,主要包括进程内存占用信息、程序ANR或crash的堆栈信息、电池信息、CPU频率信息等等。更多详细内容可以参考文章...
4. **使用内存分析工具**:如Android Studio的内存分析器,可以帮助检测内存泄漏和不必要的内存占用。 5. **合理使用软引用和弱引用**:它们可以在内存紧张时被GC回收,但需要注意防止循环引用导致的内存泄漏。 综...
以上知识点涉及了Android内存泄漏分析的多个方面,包括理论知识、工具使用、操作实践和问题诊断技巧。理解和掌握这些知识点对Android开发人员来说是非常重要的,它可以帮助他们在日常开发中有效地避免和解决内存泄漏...
- **适当使用Bitmap和内存缓存**:在处理图片时,合理缩放Bitmap以减小内存占用,并使用LRU缓存策略。 - **避免全局或静态变量持有大量对象**:这可能导致对象生命周期过长,占用内存。 - **及时释放资源**:如关闭...
在Unity中,我们可以通过Profiler的Memory部分查看应用的内存占用,但要获取更详细的内存使用情况,就需要借助之前提到的Android原生API。通过传递回来的内存信息,我们可以在Unity的UI上显示这些数据,帮助开发者...
这个工具能够帮助开发者快速定位到内存占用比较大的对象。进一步地,分析这些大对象(如Bitmap对象)到GCRoots的引用路径,可以找到那些被错误持有的对象。 案例中还提到了一个常见原因:长生命周期的对象(如...
它能够实时监测应用的CPU、内存占用情况,以及网络流量等关键指标,这对于优化应用性能、避免资源浪费至关重要。同时,它还能记录和分析应用的启动时间、响应速度,以及在不同网络条件下的表现,帮助开发者找出可能...
Allocation Tracker功能则用于追踪内存分配的过程,通过开始和停止追踪,你可以看到在特定时间段内哪些对象被创建,帮助定位内存占用的源头。 LeakCanary是一款由Square公司开发的自动化内存泄露检测工具,特别适合...