<acronym id="s8ci2"><small id="s8ci2"></small></acronym>
<rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
<acronym id="s8ci2"></acronym>
<acronym id="s8ci2"><center id="s8ci2"></center></acronym>
0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

基于MacroBenchmark的性能測試量化指標方案

jf_uPRfTJDa ? 來源: 移動Labs ? 2023-10-17 10:15 ? 次閱讀

Labs 導讀

基于Benchmark的性能測試量化指標方案是一種用于評估和量化系統性能的方法。通過使用Benchmark測試工具,該方案旨在提供可靠的性能數據,并使用具體的指標來衡量系統在各個方面的表現。本文將介紹基于Google MacroBenchmark的性能量化指標測試的工程配置、測試流程、核心指標和應用案例,幫助Android 開發者更好地評估和比較App的性能。

作者:孫仁偉

單位:中國移動智慧家庭運營中心

Part 01背景

隨著App業務不斷增長和功能的迭代,代碼量快速增加,導致應用結構復雜度提高。同時,在App開發過程中,與競爭對手的App進行性能比較也是必要的。為了避免代碼增長和功能迭代帶來的性能下降,我們需要一套技術方案來監控App版本的性能,以指導開發人員及時進行代碼重構。

Part 02方案說明

Benchmark,即基準測試,是檢查和監控應用性能的一種方式。通過對每個移動App版本的迭代運行基準測試,可以幫助分析和調試性能問題,并確保迭代的更改不會引起性能下降。

以下是一些常見的移動App的benchmark方法和工具:

1.Startup Time Benchmark:評估應用程序的啟動時間,即從用戶點擊應用圖標到應用程序完全加載并可交互的時間??梢允褂酶鞣N工具和方法來測量啟動時間,如使用應用性能監測工具或手動計時。

2.Responsiveness Benchmark:評估應用程序對用戶操作的響應速度,包括用戶界面的流暢度和操作的延遲??梢允褂眯阅鼙O測工具記錄用戶操作和應用程序響應時間,或者進行用戶體驗測試來評估應用的響應性能。

3.Memory Usage Benchmark:評估應用程序在運行過程中使用的內存量??梢允褂脙却娣治龉ぞ邅肀O測應用程序的內存使用情況,并進行比較和分析。

4.Battery Consumption Benchmark:評估應用程序對設備電池的消耗情況??梢允褂秒姵叵谋O測工具來測量應用程序在不同使用情景下的電池消耗量,并進行比較和分析。

5.Network Performance Benchmark:評估應用程序在使用網絡功能時的性能和速度??梢允褂镁W絡性能監測工具來模擬不同網絡條件下的應用性能,并進行測試和比較。

針對Startup Time Benchmark和Responsiveness Benchmark,Google提供了Macrobenchmark庫,該庫主要用于評估Android App整體性能的基準測試。其旨在模擬真實世界的使用情景,通過測試用例以涵蓋各種應用使用過程中交互操作,以綜合評估應用的性能和響應能力。

2.1 Macrobenchmark

2.1.1 設置Macrobenchmark

1. 打開應用Application工程,在 Android Studio 的 Project 面板中右鍵點擊項目或模塊,然后依次點擊 New > Module。

2. 從Templates窗格中選擇 Benchmark。

3. 自定義目標應用(要進行基準測試的應用),以及新的Macrobenchmark模塊的軟件包和模塊名稱。

4. 點擊Finish,從而創建Macrobenchmark Module。

8ce88210-6b2e-11ee-939d-92fbcf53809c.png

2.1.2 創建Macrobenchmark類

在Macrobenchmark,我們根據業務自身情況,創建所需的性能指標Benchmark測試用例。測試用例可以基于Macrobenchmark 庫中的`MacrobenchmarkRule` JUnit4規則所含的API實現。

比如我們現在需要對App應用啟動時間進行監控。則可以在Macrobenchmark Module編寫一個測試用例類,在測試用例類中編寫測試用例方案,如測量5次打開應用時間。

創建startup測試用例,該用例基于MacrobenchmarkRule.measureRepated。

8d01c842-6b2e-11ee-939d-92fbcf53809c.png

其中各參數

packageName:App的包名;

metrics:測量度量。此處我們選擇 StartupTimeMetric,標識測量啟動時長;

iterations:重復次數。表示該項用例的測試次數,可以通過多次測量取均值的方式,避免單次測量的偏差影響;

setupBlock:用例前置操作。;

最后的 {} :用例內容。此處我們執行 startActivityAndWait,表示啟動App并等待啟動完成,App首幀顯示。

2.1.3 運行基準

在Android Studio中運行測試,以衡量應用在設備上的性能??梢韵袷褂脺y試類或方法旁邊的邊線操作運行任何其他 `@Test` 一樣運行基準,如下圖所示。

8d1403a4-6b2e-11ee-939d-92fbcf53809c.png

也可以通過`gradle`命令,從命令行運行Gradle模塊中的所有基準:

8d291de8-6b2e-11ee-939d-92fbcf53809c.png

2.1.4 基準結果

基準運行成功后,指標會直接顯示在Android Studio中,還會以JSON文件形式輸出以供持續集成環境使用。

每次衡量的迭代過程均會捕獲單獨的系統跟蹤文件。點擊Test Results窗格中的其中一個鏈接,可以打開這些結果跟蹤文件,如下圖所示。即平均啟動時長為748.1ms。

8d3a8eca-6b2e-11ee-939d-92fbcf53809c.png

跟蹤文件加載完成后,Android Studio會提示您選擇要分析的進程。系統會預先填充目標應用進程:

8d501b64-6b2e-11ee-939d-92fbcf53809c.png

跟蹤文件加載完成后,Studio將在CPU性能剖析器工具中顯示結果:

8d64bb1e-6b2e-11ee-939d-92fbcf53809c.png

Part 03應用實例

在實驗工程中,在Application.onCreate中增加了200ms睡眠。

運行實驗工程,構建App,運行App,運行Macrobenchmark。在CPU性能剖析器工具中可以看到主線程在app.onCreate方法執行時耗時達223.12ms。

8d76e708-6b2e-11ee-939d-92fbcf53809c.png

通過分析CPU性能剖析器工具 的示圖,可以判斷app.onCreate 時,主線程存在約200ms異常時延。再閱讀相關代碼,可以查出該異常部分的睡眠邏輯。

將該異常睡眠邏輯移除,從新運行實驗工程,構建App,運行App,運行Macrobenchmark。

在CPU性能CPU性能剖析器工具中可以看到主線程在app.onCreate方法耗時約為22.01ms,時延正常,方法執行過程中只執行了相關調用方法,說明問題得到了修復。

8d87e490-6b2e-11ee-939d-92fbcf53809c.png

通過以上案例,我們可以看出通過Macrobenchmark + CPU性能剖析器工具, 我們可以對應用特定場景進行時延分析,并對新增時延進行有效歸因,從而能針對性的進行優化處理。

審核編輯:湯梓紅

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • Android
    +關注

    關注

    12

    文章

    3864

    瀏覽量

    125781
  • APP
    APP
    +關注

    關注

    33

    文章

    1543

    瀏覽量

    71722
  • 中國移動
    +關注

    關注

    22

    文章

    5447

    瀏覽量

    69427
  • 性能測試
    +關注

    關注

    0

    文章

    191

    瀏覽量

    21226

原文標題:技術 | 基于MacroBenchmark的性能測試量化指標方案

文章出處:【微信號:5G通信,微信公眾號:5G通信】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    射頻電纜及測試電纜組件的性能指標

    該文詳細討論了射頻電纜及測試電纜組件的各項指標性能,為廣大測試工程人員在選用高性能高可靠性射頻測試
    發表于 10-30 11:28 ?1571次閱讀

    Linux性能測試性能測試指標詳解

    性能測試指標是衡量系統性能的評價標準,常用的系統性能測試指標
    發表于 12-23 14:50 ?427次閱讀

    低比特量化技術如何幫助LLM提升性能

    針對大語言模型 (LLM) 在部署過程中的性能需求,低比特量化技術一直是優化效果最佳的方案之一,本文將探討低比特量化技術如何幫助 LLM 提升性能
    的頭像 發表于 12-08 15:26 ?691次閱讀
    低比特<b class='flag-5'>量化</b>技術如何幫助LLM提升<b class='flag-5'>性能</b>

    性能指標測試

    性能指標測試
    發表于 08-17 14:51

    請問ZIGBEE的硬件性能指標都要測試哪些內容

    我們公司買了一臺萊特波特的IQxel ,現在要用來測試ZIGBEE 的射頻,想問一下ZIGBEE 硬件性能指標都要測試哪些內容,在多少范圍才算是一個良好的ZIGBEE模塊
    發表于 08-17 06:11

    性能充放電方案在電池測試設備中的應用

    及內阻等指標進行測試,對于電池測試設備的系統設計最重要的三個指標是充放電精度,成本和轉換效率。 對于電池測試設備的核心功能電池充放電,市面上
    發表于 11-08 06:36

    INT8量化常見問題的解決方案

    一、int8的輸出和fp32模型輸出差異比較大 解決方案: 檢查前后處理是否有問題,int8網絡輸入輸出一般需要做scale處理,看看是否遺漏? 通過量化可視化工具分析int8的輸出和fp32
    發表于 09-19 06:09

    GPRS端到端測試辦法及系統側性能統計指標

    GPRS端到端測試辦法及系統側性能統計指標:KPI理論值和期望值測試辦法系統側的性能統計指標
    發表于 07-27 22:07 ?29次下載

    數據庫性能評測指標及其測試方法

    近些年來,國產數據庫得到了快速的發展,但是針對其性能測試方法和測試指標卻參差不齊。針對上述問題,中國軟件評測中心在大量數據庫測試的基礎之上
    發表于 03-17 15:22 ?79次下載

    使用OTA測試5G基站射頻指標方案說明

    在5G之前的基站射頻指標測試大多采用傳導測試的方法,但在5G時代由于Massive MIMO技術的應用,使得傳導測試的復雜程度大幅度上升,而且傳導
    發表于 11-02 10:40 ?12次下載
    使用OTA<b class='flag-5'>測試</b>5G基站射頻<b class='flag-5'>指標</b>的<b class='flag-5'>方案</b>說明

    電纜性能指標測試方法

    熟悉電纜電性能指標種類及定義; 掌握電纜電性能指標測試方法; 建立電纜重要性能指標的檢驗常態化機制。
    發表于 06-22 10:19 ?15次下載

    軟件性能測試常見指標

    軟件性能測試是指測試I程師運用各種自動化測試工具在正常、峰值或者特殊異常情況下對系統軟件進行測試,以檢測系統的
    的頭像 發表于 10-31 17:44 ?1030次閱讀

    軟件性能測試常見指標。在哪里測試測試?

    軟件性能測試是指測試I程師運用各種自動化測試工具在正常、峰值或者特殊異常情況下對系統軟件進行測試,以檢測系統的
    發表于 12-22 23:13 ?274次閱讀

    軟件性能測試方案怎么編寫?

    一、軟件性能測試方案是什么? 軟件性能測試方案是針對軟件產品開展
    的頭像 發表于 02-28 15:04 ?1782次閱讀

    半導體IC測試解決方案測試指標包含哪些?

    半導體IC測試解決方案測試指標包含哪些? 半導體IC測試解決方案
    的頭像 發表于 11-09 09:24 ?521次閱讀
    亚洲欧美日韩精品久久_久久精品AⅤ无码中文_日本中文字幕有码在线播放_亚洲视频高清不卡在线观看
    <acronym id="s8ci2"><small id="s8ci2"></small></acronym>
    <rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
    <acronym id="s8ci2"></acronym>
    <acronym id="s8ci2"><center id="s8ci2"></center></acronym>