国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

android studio內(nèi)存分析之Memory profiler的使用

這篇具有很好參考價(jià)值的文章主要介紹了android studio內(nèi)存分析之Memory profiler的使用。希望對大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

Android Studio中內(nèi)存分析工具M(jìn)emory profiler的使用

參考文章

1. 打開Memory Profiler

有兩種方式打開,第一種通過標(biāo)題欄打開:
android studio內(nèi)存分析工具,android studio,android,ide
第二種通過下方菜單欄打開
android studio內(nèi)存分析工具,android studio,android,ide

2. 工具使用

打開后是這樣的:
android studio內(nèi)存分析工具,android studio,android,ide
打開后,點(diǎn)擊 + 號,選擇自己包名
android studio內(nèi)存分析工具,android studio,android,ide
選擇完成后,就會創(chuàng)建你項(xiàng)目的SESSIONS界面:
android studio內(nèi)存分析工具,android studio,android,ide
如果想刪除這個(gè)SESSIONS,右鍵刪除:
android studio內(nèi)存分析工具,android studio,android,ide
點(diǎn)擊memory這一列
android studio內(nèi)存分析工具,android studio,android,ide
點(diǎn)擊后到內(nèi)存捕獲類型頁面

3. 內(nèi)存選項(xiàng)說明
  • 捕獲堆轉(zhuǎn)儲(Capture heap dump):查看應(yīng)用程序中在特定時(shí)間點(diǎn)使用內(nèi)存的對象
  • 記錄Native分配(Record native allocations):查看每個(gè)C/C++對象在一段時(shí)間內(nèi)是如何分配的
  • 記錄java/kotlin分配(Record java/kotlin allocations):查看在一段時(shí)間內(nèi)如何分配每個(gè)java/kotlin對象
    android studio內(nèi)存分析工具,android studio,android,ide
    然后是這個(gè)頁面
    android studio內(nèi)存分析工具,android studio,android,ide
    android studio內(nèi)存分析工具,android studio,android,ide
    然后看到這個(gè)頁面
    android studio內(nèi)存分析工具,android studio,android,ide
    android studio內(nèi)存分析工具,android studio,android,ide
4. 內(nèi)存性能分析器概覽

原文鏈接
內(nèi)存性能分析圖
當(dāng)您首次打開內(nèi)存性能分析器時(shí),您將看到一條表示應(yīng)用內(nèi)存使用量的詳細(xì)時(shí)間軸,并可使用各種工具強(qiáng)制執(zhí)行垃圾回收、捕獲堆轉(zhuǎn)儲以及記錄內(nèi)存分配
android studio內(nèi)存分析工具,android studio,android,ide

  1. 用于強(qiáng)制執(zhí)行垃圾回收事件的按鈕
  2. 用于捕獲堆轉(zhuǎn)儲的按鈕
  3. 用于指定性能分析器多久捕獲一次內(nèi)存分配的下拉菜單
  4. 用于縮放時(shí)間軸的按鈕
  5. 用于跳轉(zhuǎn)到實(shí)時(shí)內(nèi)存數(shù)據(jù)的按鈕
  6. 事件時(shí)間軸,顯示活動狀態(tài)、用戶輸入事件和屏幕旋轉(zhuǎn)事件
  7. 內(nèi)存使用量時(shí)間軸,它會顯示以下內(nèi)容
  • 一個(gè)堆疊圖表,顯示每個(gè)內(nèi)存類別當(dāng)前使用多少內(nèi)存,如左側(cè)的 y 軸以及頂部的彩色鍵所示
  • 一條虛線,表示分配的對象數(shù),如右側(cè)的 y 軸所示
  • 每個(gè)垃圾回收事件的圖標(biāo)
5. 內(nèi)存計(jì)算方式

內(nèi)存性能分析器頂部看到的數(shù)字
android studio內(nèi)存分析工具,android studio,android,ide
內(nèi)存計(jì)數(shù)中的類別如下

  • Java:從 Java 或 Kotlin 代碼分配的對象的內(nèi)存
  • Native:從 C 或 C++ 代碼分配的對象的內(nèi)存
  • Graphics:圖形緩沖區(qū)隊(duì)列為向屏幕顯示像素(包括 GL 表面、GL 紋理等等)所使用的內(nèi)存
  • Stack:您的應(yīng)用中的原生堆棧和 Java 堆棧使用的內(nèi)存。這通常與您的應(yīng)用運(yùn)行多少線程有關(guān)
  • Code:您的應(yīng)用用于處理代碼和資源(如 dex 字節(jié)碼、經(jīng)過優(yōu)化或編譯的 dex 代碼、.so 庫和字體)的內(nèi)存
  • Others:您的應(yīng)用使用的系統(tǒng)不確定如何分類的內(nèi)存
  • Allocated:您的應(yīng)用分配的 Java/Kotlin 對象數(shù)。此數(shù)字沒有計(jì)入 C 或 C++ 中分配的對象
6. 查看內(nèi)存分配

選擇Capture heap dump,并點(diǎn)擊Record按鈕,開始捕獲,捕獲完成后,點(diǎn)擊Stop,進(jìn)行分析
android studio內(nèi)存分析工具,android studio,android,ide
查看捕獲結(jié)果
android studio內(nèi)存分析工具,android studio,android,ide
android studio內(nèi)存分析工具,android studio,android,ide
檢查分配記錄步驟:

  1. 點(diǎn)擊 Class Name 列標(biāo)題以按字母順序排序。然后,點(diǎn)擊一個(gè)類名稱。此時(shí)下側(cè)將出現(xiàn)
  2. Instance View 窗格,顯示該類的每個(gè)實(shí)例
  3. 在 Instance View 窗格中,點(diǎn)擊一個(gè)實(shí)例。此時(shí)下方將出現(xiàn) References 標(biāo)簽頁,顯示該實(shí)例被4. 分配到何處以及在哪個(gè)線程中。
  4. 在 References 標(biāo)簽頁中,右鍵點(diǎn)擊任意行并選擇 Jump to Source,以在編輯器中打開該代碼

菜單查看說明
android studio內(nèi)存分析工具,android studio,android,ide
菜單-檢查的堆:

  • default heap:當(dāng)系統(tǒng)未指定堆時(shí)
  • image heap:系統(tǒng)啟動映像,包含啟動期間預(yù)加載的類。此處的分配確保絕不會移動或消失
  • zygote heap:寫時(shí)復(fù)制堆,其中的應(yīng)用進(jìn)程是從 Android 系統(tǒng)中派生的
  • app heap:您的應(yīng)用在其中分配內(nèi)存的主堆
  • JNI heap:顯示 Java 原生接口 (JNI) 引用被分配和釋放到什么位置的堆

菜單-分配:

  • Arrange by class:根據(jù)類名稱對所有分配進(jìn)行分組。這是默認(rèn)值

  • Arrange by package:根據(jù)軟件包名稱對所有分配進(jìn)行分組

  • Arrange by callstack:將所有分配分組到其對應(yīng)的調(diào)用堆棧

  • 捕獲Native方式查看內(nèi)存分配
    捕獲Native
    android studio內(nèi)存分析工具,android studio,android,ide
    native結(jié)果數(shù)據(jù)
    android studio內(nèi)存分析工具,android studio,android,ide
    結(jié)果信息說明:

  • Allocations:在選定時(shí)間段內(nèi)通過 malloc() 或 new 運(yùn)算符分配的對象數(shù)

  • Deallocations:在選定時(shí)間段內(nèi)通過 free() 或 delete 運(yùn)算符解除分配的對象數(shù)

  • Allocations Size:在選定時(shí)間段內(nèi)所有分配的總大?。ㄒ宰止?jié)為單位)

  • Deallocations Size:在選定時(shí)間段內(nèi)所有已釋放內(nèi)存的總大小(以字節(jié)為單位)

  • Total Count:Allocations 列中的值減去 Deallocations 列中的值所得的結(jié)果

  • Remaining Size:Allocations Size 列中的值減去 Deallocations Size 列中的值所得的結(jié)果

7. 捕獲java/kotlin方式查看內(nèi)存分配

android studio內(nèi)存分析工具,android studio,android,ide
Allocation Tracking下拉菜單說明

  • Full:捕獲內(nèi)存中的所有對象分配。這是 Android Studio 3.2 及更低版本中的默認(rèn)行為
  • Sampled:定期對內(nèi)存中的對象分配情況進(jìn)行采樣。
  • Off:停止跟蹤應(yīng)用的內(nèi)存分配
8. 堆轉(zhuǎn)儲文件導(dǎo)入和導(dǎo)出
  1. 堆轉(zhuǎn)儲文件導(dǎo)出
    在Sessions列表中,點(diǎn)擊會話條目右側(cè)的 Export method trace 或 Export system trace 按鈕
    android studio內(nèi)存分析工具,android studio,android,ide
  2. 堆轉(zhuǎn)儲文件導(dǎo)入
    Sessions 窗格中點(diǎn)擊 Start new profiler session 圖標(biāo)"+",然后選擇 Load from file
    android studio內(nèi)存分析工具,android studio,android,ide

內(nèi)存性能分析器中的泄漏檢測

  1. 檢查內(nèi)存泄漏
    捕獲堆轉(zhuǎn)儲(Capture heap dump)檢測期間操作設(shè)備,完成后點(diǎn)擊Stop按鈕,檢測結(jié)束后,顯示有內(nèi)存泄漏及內(nèi)存泄漏的數(shù)目
    android studio內(nèi)存分析工具,android studio,android,ide

  2. 如何查看內(nèi)存泄漏的位置
    雙擊內(nèi)存泄漏的位置,顯示內(nèi)存泄漏的列表
    android studio內(nèi)存分析工具,android studio,android,ide

  3. 點(diǎn)擊列表中其中一個(gè),顯示實(shí)例對象
    android studio內(nèi)存分析工具,android studio,android,ide

  4. 點(diǎn)擊實(shí)例對象,顯示詳細(xì)信息
    android studio內(nèi)存分析工具,android studio,android,ide

  5. 切換到References選項(xiàng)卡,并點(diǎn)擊show nearest GC root only
    android studio內(nèi)存分析工具,android studio,android,ide

  6. 右鍵選擇jump to sourceandroid studio內(nèi)存分析工具,android studio,android,ide

  7. 跳轉(zhuǎn)到源碼,可以看到是thread引起的內(nèi)存泄漏
    android studio內(nèi)存分析工具,android studio,android,ide文章來源地址http://www.zghlxwxcb.cn/news/detail-743577.html

到了這里,關(guān)于android studio內(nèi)存分析之Memory profiler的使用的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • Eclipse內(nèi)存分析器 Java內(nèi)存分析工具M(jìn)AT(Memory Analyzer Tool)的介紹與使用

    Eclipse內(nèi)存分析器 Java內(nèi)存分析工具M(jìn)AT(Memory Analyzer Tool)的介紹與使用

    =============================================------------------------ 然后我將堆內(nèi)存文件轉(zhuǎn)儲,就告訴我內(nèi)存泄漏,分析結(jié)果如下,請幫我前后理解關(guān)系。我需要向領(lǐng)導(dǎo)匯報(bào)。7 instances of “org.apache.catalina.loader.ParallelWebappClassLoader”, loaded by “java.net.URLClassLoader @ 0x4c0008ae8” occupy 17,693,472 (1

    2024年04月26日
    瀏覽(16)
  • Android 耗時(shí)分析(adb shell/Studio CPU Profiler/插樁Trace API)

    Android 耗時(shí)分析(adb shell/Studio CPU Profiler/插樁Trace API)

    1.adb logcat 查看冷啟動時(shí)間和Activity顯示時(shí)間: 過濾Displayed,可看到Activity的顯示時(shí)間 那上面display后面的是時(shí)間是指包含哪些過程的時(shí)間呢? 模擬在Application中沉睡1秒操作,冷啟動情況下: 從上可知 :在冷啟動情況下,第一個(gè)activity的display是冷啟動的總時(shí)間=applicati

    2024年02月15日
    瀏覽(23)
  • 簡單使用AndroidStudio 官方Profiler工具進(jìn)行內(nèi)存泄漏檢查

    簡單使用AndroidStudio 官方Profiler工具進(jìn)行內(nèi)存泄漏檢查

    Android studio(下面簡稱AS)為App提供的性能分析工具,在AS3.0+替換掉舊的分析工具,對于其使用方法,官方也有對應(yīng)的介紹:Android Profiler 對于使用方法,我只用到比較簡單的功能,高級的還沒用到,使用案例進(jìn)行簡答的使用,在此之前,你可能需要到官方文檔中了解Profiler中

    2023年04月08日
    瀏覽(23)
  • android 如何分析應(yīng)用的內(nèi)存(十五)——Visual Studio Code 調(diào)試Android應(yīng)用

    android 如何分析應(yīng)用的內(nèi)存(十五)——Visual Studio Code 調(diào)試Android應(yīng)用

    在上一篇文章介紹了jdb調(diào)試java應(yīng)用 接下來介紹用UI界面調(diào)試java應(yīng)用,達(dá)到同jdb一樣的效果。 同樣的UI界面有很多選擇,如Eclipse,Android Studio,Visual Studio Code.因?yàn)锳ndroid Studio的諸多不便,結(jié)合自身的使用習(xí)慣,這里推薦并介紹Visual Studio Code 安裝必要的插件 在插件市場中,搜索

    2024年02月14日
    瀏覽(22)
  • Android 內(nèi)存泄漏、性能分析常用工具

    一、內(nèi)存泄漏 1、 MAT-eclipse :“Memory Analyzer Tool”,一個(gè)基于Eclipse的內(nèi)存分析工具,是一個(gè)快速、功能豐富的JAVA heap分析工具,它可以幫助我們查找內(nèi)存泄漏和減少內(nèi)存消耗。 2、Leakcanary :一款開源的自動檢測內(nèi)存泄漏的工具。 3、AndroidStudio Profiler :Android Studio 3.0 采用全新

    2024年02月12日
    瀏覽(25)
  • Android內(nèi)存泄漏分析及檢測工具LeakCanary簡介,Android進(jìn)階

    Android內(nèi)存泄漏分析及檢測工具LeakCanary簡介,Android進(jìn)階

    @Synchronized override fun expectWeaklyReachable( watchedObject: Any, description: String ) { if (!isEnabled()) { return } removeWeaklyReachableObjects() val key = UUID.randomUUID() .toString() val watchUptimeMillis = clock.uptimeMillis() val reference = KeyedWeakReference(watchedObject, key, description, watchUptimeMillis, queue) SharkLog.d { \\\"Watching \\\" +

    2024年04月25日
    瀏覽(16)
  • Android13 針對low memory killer內(nèi)存調(diào)優(yōu)

    Android13 針對low memory killer內(nèi)存調(diào)優(yōu)

    在舊版本的安卓系統(tǒng)中,當(dāng)觸發(fā)lmk(low memory killer)的時(shí)候一般認(rèn)為就是內(nèi)存不足導(dǎo)致,但是隨著安卓版本的增加lmk的判斷標(biāo)準(zhǔn)已經(jīng)不僅僅是內(nèi)存剩余大小,io,cpu同樣會做評判,從而保證設(shè)備性能。這里引入的概念就是psi(Pressure Stall Information)壓力失速信息,用來檢測內(nèi)存

    2024年02月21日
    瀏覽(58)
  • eclipse memory Analyzer(MAT) 內(nèi)存泄漏分析

    eclipse memory Analyzer(MAT) 內(nèi)存泄漏分析

    ? 1.1軟件下載 ????????Eclipse IDE,它非常有用。因?yàn)镸emory Analyzer在分析堆內(nèi)存的時(shí)候比較耗費(fèi)內(nèi)存,而Eclipse IDE本身又是比較耗費(fèi)內(nèi)存的,所以推薦使用獨(dú)立安裝的Memory Analyzer。 安裝包地址:https://www.eclipse.org/mat/downloads.php 獨(dú)立安裝的Memory Analyzer的獨(dú)立版本所需的最低Ja

    2024年02月14日
    瀏覽(42)
  • Android開發(fā)之性能優(yōu)化工具Profiler

    Android開發(fā)之性能優(yōu)化工具Profiler

    性能優(yōu)化問題,在我們開發(fā)時(shí)都會遇到,但是在小廠和對自己要求不嚴(yán)格的情況下,我都很少去做性能優(yōu)化; 在性能優(yōu)化上,基本大家都是通過自己的開發(fā)經(jīng)驗(yàn)和性能分析工具來發(fā)現(xiàn)問題,今天給大家分享一下小編最近使用的Profiler工具 幫助開發(fā)者了解應(yīng)用的CPU,內(nèi)存,網(wǎng)絡(luò)

    2024年02月11日
    瀏覽(10)
  • Android開發(fā)之性能測試工具Profiler

    Android開發(fā)之性能測試工具Profiler

    性能優(yōu)化問題,在我們開發(fā)時(shí)都會遇到,但是在小廠和對自己要求不嚴(yán)格的情況下,我都很少去做性能優(yōu)化; 在性能優(yōu)化上,基本大家都是通過自己的開發(fā)經(jīng)驗(yàn)和性能分析工具來發(fā)現(xiàn)問題,今天給大家分享一下小編最近使用的Profiler工具 幫助開發(fā)者了解應(yīng)用的CPU,內(nèi)存,網(wǎng)絡(luò)

    2024年02月11日
    瀏覽(19)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包