Android进程内存统计工具procstats_第1页
Android进程内存统计工具procstats_第2页
Android进程内存统计工具procstats_第3页
Android进程内存统计工具procstats_第4页
Android进程内存统计工具procstats_第5页
已阅读5页,还剩8页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

进程统计:了解如何使你的应用程序使用RAM安卓4.4奇巧推出了一款名为procstats新的系统服务,帮助您更好地了解您的应用程序是如何使用设备上的RAM资源。Procstats能够看到您的应用程序的行为在一段时间-包括它在后台运行,多少内存在这段时间里,它使用多长时间。它可以帮助你快速找到尤其是在低RAM的设备上运行时效率低下和不良行为在你的应用程序,它可以影响它如何执行。您可以使用亚行的shell命令来访问procstats的数据,但为了方便也有一个新的进程统计的开发工具,它提供了一个图形化的前端相同的数据。你可以找到处理统计在设置〉开发人员选项>进程统计。在这篇文章中,我们将先来看看进程统计图形工具,然后深入到它背后的存储器中的数据,它是如何收集的细节,以及为什么它是如此对你有用,你分析你的应用程序。存储过程概述统计一段时间内使用的后台进程。综观全系统的内存使用和后台进程

当您打开进程统计,你看到的全系统内存不足的情况,并了解如何进程使用的内存随着时间的总结。在右边的图像给你什么,你可能一个典型的设备上看到的一个例子。在我们可以看到,在屏幕的顶部:我们正在收集过去3.5小时数据。目前该设备的RAM情况良好(“设备的内存是目前正常”)。在此期间,整个时间内存状态一直不错-这是显示由绿条。如果设备内存是越来越低,你会看到代表总时间与低内存量栏左侧的黄色和红色区域。下面的绿条,我们可以看到在后台,他们已经把系统上的内存负载运行的进程的概述:右边的百分比数字表示每个时间进程已经花费的总持续时间期间运行的量。蓝条表示每个过程的相对计算的内存负载。(内存负荷runtime*avg_pss ,我们将进入更详细的版本。)一些应用程序可能会多次列出,因为什么被显示的是进程(例如,谷歌Play业务运行在两个过程)。这些应用程序的存储器负荷是其各个处理的负荷的总和。有在该已经全部运行的100%的时间前几道工序,但与由于其相对存储器使用不同的权重。分析内存的具体流程这个例子显示了一些有趣的数据:我们有比谷歌键盘更高的内存重量时钟的应用程序,即使它跑了不到一半的时间。我们可以挖掘到这些过程的细节仅仅通过点击它们:9QS■*a9QS■*a11:02《卓UsedevilsClock43%gnkggglvnd诚.deahckickForcestop(U3tDETAILSAverageRAMuse21MBMwinnumRAMuse21MBRumtime43%SERVICES43%a1oqa■Ya91:02<UsedetailsAGoraleKeyboardcxHYi.gKj&gle.andraid.in^iulmetfiad.laEihU缠心血1#AverageRAMu$eMaxinHimRAMuseRuntime100%SERVICES100%a曰流程统计内存细节时钟和键盘的过程,在过去3.5小时。细节对于这两个过程表明:该时钟已在所有运行的原因是因为它是被用作当前的屏幕保护程序时,该设备处于闲置状态。即使时钟过程跑了键盘的不到一半的时间,它的压头使用是显著较大(几乎3倍),这也就是为什么它的总重量较大。从本质上讲,procstats提供了一个“内存使用”计这很像存储使用或数据使用量规,显示在后台运行的应用程序的多少RAM使用。不像存储或数据,不过,内存使用是非常难以量化和衡量,并procstats使用一些技巧来这样做。为了说明测量内存使用的复杂性,考虑相关主题:任务管理器。了解任务管理器和他们的记忆信息我们已经对Android的任务管理器具有悠久的历史。Android的一贯支持深表多任务处理,这意味着我们的怪异往往会希望有一些UI的观察和控制这种多任务像传统的UI,我们从桌面使用。然而,在多任务的Android其实是相当多复杂,比传统的桌面操作系统有着根本的不同,因为我以前覆盖多任务Android的方式。这深深地影响如何,我们可以把它展示给用户。多任务处理和连续的过程管理为了得到一个感觉是多么不同的流程管理是在Android上,你可以看看在一个重要的系统服务的输出,活动管理,与adbshelldumpsysactivity。下面的例子显示了Android4.4系统的当前应用程序进程的快照,从最重要的上市他们至少有:ACTIVITYMANAGERRUNNINGPROCESSES(dumpsysactivityprocesses)ProcessLRUlist(sortedbyoom_adj,22total,non-actat2,non-svcat2):PERS#21: sys F/ /P trm: 0 23064:system/1000(fixed)PERS#20: pers F/ /P trm: 0 23163:com.android.systemui/u0a12(fixed)PERS#19: pers F/ /P trm: 0 23344:com.nuance.xt9.input/u0a77(fixed)PERS#18: pers F/ /P trm: 0 23357:com.android.phone/1001(fixed)PERS#17: pers F/ /P trm: 0 23371:com.android.nfc/1027(fixed)Proc#3:foreF//IBtrm:013892:com.google.android.apps.magazines/u0a59(service)com.google.android.apps.magazines/com.google.apps.dots.android.app.service.SyncService<=Proc{23064:system/1000}

Proc#2:foreF//IBtrm:023513:cess.gapps/u0a8(provider)com.google.android.gsf/.gservices.GservicesProvider<=Proc{13892:com.google.android.apps.magazines/u0a59}Proc#0:foreF/A/Ttrm:024811:com.android.settings/1000(top-activity)Proc#4:vis F//IFtrm:023472:cess.location/u0a8(service)com.google.android.backup/.BackupTransportService<=Proc{23064:system/1000}Proc#14:prcpF//IFtrm:023298:com.google.android.inputmethod.latin/u0a57(service)com.google.android.inputmethod.latin/com.android.inputmethod.latin.LatinIME<=Proc{23064:system/1000}Proc#1:homeB//HOtrm:023395:com.android.launcher/u0a13(home)Proc#16:cch B//CAtrm:023966:com.google.android.deskclock/u0a36(cch-act)Proc # 6: cch B/ /CE trm: 0 7716:com.google.android.music:main/u0a62(cch-empty)Proc # 5: cch B/ /CE trm: 0 8644:com.google.android.apps.docs/u0a39(cch-empty)Proc # 8: cch+2 B/ /CE trm: 0 5131:com.google.android.youtube/u0a78(cch-empty)Proc # 7: cch+2 B/ /CE trm: 0 23338:com.google.android.gms/u0a8(cch-empty)Proc#10:cch+4B//CEtrm:08937:com.google.android.apps.walletnfcrel/u0a24(cch-empty)Proc#9:cch+4B//CEtrm:024689:com.google.android.apps.plus/u0a70(cch-empty)Proc#15:cch+6B//Strm:023767:com.google.android.apps.currents/u0a35(cch-started-services)Proc#13:cch+6B//CEtrm:09115:com.google.android.gm/u0a44(cch-empty)Proc#12:cch+6B//Strm:07738:cess.media/u0a6(cch-started-services)Proc#12:cch+6B//SProc#11:cch+6B//CEtrm:08922:com.google.android.setupwizard/u0a19(cch-empty)

例如输出dumpsys活动的命令,显示所有进程正在运行。有过程的几个主要群体在这里-持续的系统进程中,前台进程,后台进程,最后缓存的过程-和进程的类别是了解其对系统的影响非常重要。与此同时,这个名单上的进程改变所有的时间。例如,在上面的快照,我们可以看到,“com.google.android.晶目前一个重要的过程,但是这是因为它是做一个后台同步,一些用户通常不知道或者想要管理。快照每个进程的内存使用传统的使用任务管理器是紧密联系在一起的RAM使用,而Android提供了一个工具,称为meminfo的望着当前每个进程的RAM使用快照。你可以用命令访问亚行外壳dumpsysmeminfo中。下面是输出的一个例子。TotalPSSbyOOMadjustment:31841kB:Native13173kB:zygote(pid23001)4372kB:surfaceflinger(pid23000)3721kB:mediaserver(pid126)3317kB:glgps(pid22993)1656kB:drmserver(pid125)995kB:wpa_supplicant(pid23148)786kB:netd(pid121)518kB:sdcard(pid132)475kB:vold(pid119)458kB:keystore(pid128)448kB:/init(pid1)412kB:adbd(pid134)254kB:ueventd(pid108)238kB:dhcpcd(pid10617)229kB:tf_daemon(pid130)

200kB:installd(pid127)185kB:dumpsys(pid14207)144kB:healthd(pid117)139kB:debuggerd(pid122)121kB:servicemanager(pid118)48217kB:System48217kB:system(pid23064)49095kB:Persistent34012kB:com.android.systemui(pid23163/activities)7719kB:com.android.phone(pid23357)4676kB:com.android.nfc(pid23371)2688kB:com.nuance.xt9.input(pid23344)24945kB:Foreground24945kB:com.android.settings(pid24811/activities)17136kB:Visible14026kB:cess.location(pid23472)3110kB:com.android.defcontainer(pid13976)6911kB:Perceptible6911kB:com.google.android.inputmethod.latin(pid23298)14277kB:AServices14277kB:cess.gapps(pid23513)26422kB:Home26422kB:com.android.launcher(pid23395/activities)21798kB:BServices16242kB:com.google.android.apps.currents(pid23767)5556kB:cess.media(pid7738)145869kB:Cached41588kB:com.google.android.apps.plus(pid24689)21417kB:com.google.android.deskclock(pid23966/activities)14463kB:com.google.android.apps.docs(pid8644)14303kB:com.google.android.gm(pid9115)11014kB:com.google.android.music:main(pid7716)10688kB:com.google.android.apps.magazines(pid13892)10240kB:com.google.android.gms(pid23338)9882kB:com.google.android.youtube(pid5131)8807kB:com.google.android.apps.walletnfcrel(pid8937)3467kB:com.google.android.setupwizard(pid8922)TotalRAM:998096kBFreeRAM:574945kB(145869cachedpss+393200cached+35876free)UsedRAM:392334kB(240642usedpss+107196buffers+3856shmem+40640slab)LostRAM:30817kBTuning:64(large384),oom122880kB,restorelimit40960kB(high-end-gfx)例如输出dumpsysmeminfo中的命令,显示目前使用的正在运行的进程的内存。我们现在看到的上面,按重要性再次组织同样的过程,但现在他们对RAM的使用影响。通常,当我们衡量的AndroidRAM的使用,我们这样做的Linux的PSS(比例集大小)的度量。这是RAM的数量实际上映射到进程,但它是跨进程共享的量加权。因此,如果有RAM的4K页映射到两个过程,其PSS量对于每个过程将是2K。

有关使用PSS的好处是,你可以添加了这个值,所有的进程来确定实际的总RAM使用。这个特性被用在所述的端部meminfo报告来计算多少RAM在使用时(其中部分来自所有非高速缓存过程),对有多少是“免费”的(其中包括高速缓存过程)。.*S1艄(Appfi SHOW贝蛔祁曜黠部QCI帆LWg 叫邮1瞄2ftpsettings24MB■<li gJ10itiMedia$4曜■1口或旧路球1service槌囱■GoogtePlayservicesUMBIJewessandiservice1*13■faGoogtePlw^rvic€&ahd3servictscCLirrents1processmJ1serviet1宜4■幻9A'GoogleK^ytjosrd&.7MB1jiiucessand1service15:4B:55■dWhil如si4A7MR『叩w.r a任务管理器风格的内存信息,显示内存使用正在运行的应用的快照。基于PSS快照任务管理器UI给我们的资料,到目前为止,我们可以想象各种方式在一定程度传统任务管理器UI展示这一点。其实,你在设置看到UI>应用程序〉运行从该信息导出。它显示正在运行的服务(在LRU列表“SVC”调整)所有进程和代系统(过程与“<=(PROC489:系统/1000}”依赖),计算PSSRAM为每个这些和他们有任何其他进程依赖于。与可视化内存使用这种方式的问题在于,它给你的应用程序的即时状态,没有上下文随着时间的推移。在Android上,用户不直接控制应用程序的创建和删除-他们可以保留以备将来使用,移除时的系统决定,或者在后台运行,而无需用户明确启动它们。所以只看内存的即时状态只使用,您将得到缺少有关什么是真正打算在一段时间内的重要信息。例如,在我们先来看看进程状态,我们看到com.google.android.apps.magazines进程中运行的同步,但是当我们收集到的RAM使用权后,它不再在后台运行,但只是被围绕保持作为一个老缓存的过程。为了解决这个问题,新的procstats工具连续监控所有的应用程序的状态随着时间的推移,聚集该信息,并收集PSS样品从那些过程,而这样做。您可以查看正在收集procstats用命令的原始数据adbshelldumpsysprocstats。随着时间的推移procstats看到内存使用

现在,让我们回到procstats并看看它提供了通过显示随着时间的推移内存使用的上下文。我们可以使用命令adbshelldumpsysprocstats--hours3收集了近3个小时的输出内存信息。这是相同的数据,在第一处理例的统计图形表示。输出显示所有已在过去三小时的运行过程中,整理与运行最先那些的。(在缓存状态的进程不指望在这种的总时间。)像最初的图形表示,现在我们清楚地看到了那个时间运行的所有进程一个大组,然后一些偶尔运行-这包括该杂志的过程中,我们现在可以看到跑的时候3.6%,在过去3小时。*com.google.android.inputmethod.latin/u0a57:TOTAL:100%(6.4MB-6.7MB-6.8MB/5.4MB-5.4MB-5.4MBover21)ImpFg:100%(6.4MB-6.7MB-6.8MB/5.4MB-5.4MB-5.4MBover21)cess.gapps/u0a8:TOTAL:100%(12MB-13MB-14MB/10MB-11MB-12MBover211)ImpFg:0.11%ImpBg:0.83%(13MB-13MB-13MB/11MB-11MB-11MBover1)Service:99%(12MB-13MB-14MB/10MB-11MB-12MBover210)com.android.systemui/u0a12:TOTAL:100%(29MB-32MB-34MB/26MB-29MB-30MBover21)Persistent:100%(29MB-32MB-34MB/26MB-29MB-30MBover21)com.android.phone/1001:TOTAL:100%(6.5MB-7.1MB-7.6MB/5.4MB-5.9MB-6.4MBover21)Persistent:100%(6.5MB-7.1MB-7.6MB/5.4MB-5.9MB-6.4MBover21)com.nuance.xt9.input/u0a77:TOC\o"1-5"\h\zTOTAL: 100% (2.3MB-2.5MB-2.7MB/1.5MB-1.5MB-1.5MB over 21)Persistent: 100% (2.3MB-2.5MB-2.7MB/1.5MB-1.5MB-1.5MB over 21)com.android.nfc/1027:TOTAL: 100% (4.2MB-4.5MB-4.6MB/3.2MB-3.2MB-3.3MB over 21)Persistent: 100% (4.2MB-4.5MB-4.6MB/3.2MB-3.2MB-3.3MB over 21)cess.location/u0a8:TOTAL:100%(13MB-13MB-14MB/10MB-11MB-11MBover21)ImpFg:100%(13MB-13MB-14MB/10MB-11MB-11MBover21)system/1000:TOTAL:100%(42MB-46MB-56MB/39MB-42MB-48MBover21)Persistent:100%(42MB-46MB-56MB/39MB-42MB-48MBover21)com.google.android.apps.currents/u0a35:TOTAL:100%(16MB-16MB-16MB/14MB-14MB-14MBover17)Service:100%(16MB-16MB-16MB/14MB-14MB-14MBover17)com.android.launcher/u0a13:TOC\o"1-5"\h\zTOTAL: 77% (25MB-26MB-27MB/22MB-23MB-24MB over 73)Top: 77% (25MB-26MB-27MB/22MB-23MB-24MB over 73)(Home): 23% (25MB-26MB-26MB/23MB-23MB-24MB over 12)cess.media/u0a6:TOTAL:48%(5.0MB-5.3MB-5.5MB/4.0MB-4.2MB-4.2MBover11)

ImpFg:0.00%ImpBg:0.00%Service:48%(5.0MB-5.3MB-5.5MB/4.0MB-4.2MB-4.2MBover11)Receiver:0.00%(Cached):22%(4.1MB-4.5MB-4.8MB/3.0MB-3.5MB-3.8MBover8)com.google.android.deskclock/u0a36:TOTAL:42%(20MB-21MB-21MB/18MB-19MB-19MBover8)ImpFg:42%(20MB-21MB-21MB/18MB-19MB-19MBover8)Service:0.00%Receiver:0.01%(Cached):58%(17MB-20MB-21MB/16MB-18MB-19MBover14)com.android.settings/1000:TOTAL:23%(19MB-22MB-28MB/15MB-19MB-24MBover31)Top:23%(19MB-22MB-28MB/15MB-19MB-24MBover31)(LastAct):77%(9.7MB-14MB-20MB/7.5MB-11MB-18MBover8)(Cached):0.02%com.google.android.apps.magazines/u0a59:TOTAL:3.6%(10MB-10MB-10MB/8.7MB-9.0MB-9.0MBover6)ImpBg:0.03%Service:3.6%(10MB-10MB-10MB/8.7MB-9.0MB-9.0MBover6)(Cached):17%(9.9MB-10MB-10MB/8.7MB-8.9MB-9.0MBover5)com.android.defcontainer/u0a5:TOTAL:1.4%(2.7MB-3.0MB-3.0MB/1.9MB-1.9MB-1.9MBover7)Top:1.2%(3.0MB-3.0MB-3.0MB/1.9MB-1.9MB-1.9MBover6)ImpFg:0.19%(2.7MB-2.7MB-2.7MB/1.9MB-1.9MB-1.9MBover1)Service:0.00%(Cached):15%(2.6MB-2.6MB-2.6MB/1.8MB-1.8MB-1.8MBover1)com.google.android.youtube/u0a78:TOTAL:1.3%(9.0MB-9.0MB-9.0MB/7.8MB-7.8MB-7.8MBover1)ImpBg:1.0%(9.0MB-9.0MB-9.0MB/7.8MB-7.8MB-7.8MBover1)Service:0.27%ServiceRs:0.01%Receiver:0.00%(Cached):99%(9.1MB-9.4MB-9.7MB/7.7MB-7.9MB-8.1MBover24)com.google.android.gms/u0a8:TOTAL:0.91%(9.2MB-9.2MB-9.2MB/7.6MB-7.6MB-7.6MBover1)ImpBg:0.79%(9.2MB-9.2MB-9.2MB/7.6MB-7.6MB-7.6MBover1)Service:0.11%Receiver:0.00%(Cached):99%(8.2MB-9.4MB-10MB/6.5MB-7.6MB-8.1MBover25)com.google.android.gm/u0a44:TOTAL:0.56%ImpBg:0.55%Service:0.01%

Receiver:0.00%(Cached):99%(11MB-13MB-14MB/10MB-12MB-13MBover24)com.google.android.apps.plus/u0a70:TOTAL:0.22%ImpBg:0.22%Service:0.00%Receiver:0.00%(Cached):100%(38MB-40MB-41MB/36MB-38MB-39MBover17)com.google.android.apps.docs/u0a39:TOTAL:0.15%ImpBg:0.

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论