成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

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

移動開發
本文將介紹基于Google MacroBenchmark的性能量化指標測試的工程配置、測試流程、核心指標和應用案例,幫助Android 開發者更好地評估和比較App的性能。

基于Benchmark的性能測試量化指標方案是一種用于評估和量化系統性能的方法。通過使用Benchmark測試工具,該方案旨在提供可靠的性能數據,并使用具體的指標來衡量系統在各個方面的表現。

Part 01 背景

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

Part 02 方案說明

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

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

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

2.Responsiveness Benchmark:評估應用程序對用戶操作的響應速度,包括用戶界面的流暢度和操作的延遲。可以使用性能監測工具記錄用戶操作和應用程序響應時間,或者進行用戶體驗測試來評估應用的響應性能。

3.Memory Usage Benchmark:評估應用程序在運行過程中使用的內存量。可以使用內存分析工具來監測應用程序的內存使用情況,并進行比較和分析。

4.Battery Consumption Benchmark:評估應用程序對設備電池的消耗情況。可以使用電池消耗監測工具來測量應用程序在不同使用情景下的電池消耗量,并進行比較和分析。

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

針對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。

圖片

2.1.2 創建Macrobenchmark類

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

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

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

圖片

其中各參數:

  • packageName:App的包名;
  • metrics:測量度量。此處我們選擇 StartupTimeMetric,標識測量啟動時長;
  • iterations:重復次數。表示該項用例的測試次數,可以通過多次測量取均值的方式,避免單次測量的偏差影響;
  • setupBlock:用例前置操作。;
  • 最后的 {} :用例內容。此處我們執行 startActivityAndWait,表示啟動App并等待啟動完成,App首幀顯示。

2.1.3 運行基準

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

圖片

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

圖片

2.1.4 基準結果

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

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

圖片

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

圖片

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

圖片


Part 03 應用實例

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

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

圖片

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

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

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

圖片

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

??參考文獻

[1] 基準化分析:https://developer.android.com/topic/performance/benchmarking/benchmarking-overview?hl=zh-cn.

[2] 使用Macrobenchmark 測量用戶啟動好卡頓:https://www.youtube.com/watch?v=0adLO2VRJtc.

責任編輯:龐桂玉 來源: 移動Labs
相關推薦

2023-09-13 14:47:34

性能測試開發

2024-11-05 16:45:02

2023-08-02 18:40:42

2010-09-08 11:38:27

2012-12-18 13:32:45

IBMdW

2014-01-07 09:38:34

OpenFlowSDN測試

2023-03-30 19:28:51

2022-05-17 08:53:26

TPS性能測試

2024-03-21 15:07:22

2012-09-18 10:48:47

服務器虛擬化Hypervisor虛擬化

2021-07-27 06:14:32

服務器端移動端性能測試

2012-08-27 09:47:11

云計算災難恢復

2018-01-09 18:33:24

軟件開發測試軟件測試

2016-01-22 09:47:10

HTML5WebGLBIM模型

2024-12-11 08:47:47

2010-01-11 14:17:34

千兆交換機性能

2023-11-20 09:48:13

Linux性能指標命令

2023-04-10 10:32:00

模型排序

2023-07-10 16:18:18

性能優化開發

2023-12-06 09:33:54

Reactor網絡
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 精品亚洲永久免费精品 | 日韩无| 亚洲视频欧美视频 | 久久久久久久久久久久久九 | 亚洲欧美国产精品一区二区 | 91私密视频 | 午夜成人免费电影 | 中文字幕乱码一区二区三区 | 国产一区不卡 | 欧美一区二区三区在线观看视频 | 男人天堂手机在线视频 | 天天色天天色 | 激情五月综合 | 91免费在线看 | 日日摸日日碰夜夜爽亚洲精品蜜乳 | 亚洲黄色成人网 | 中文字幕一区二区三区四区 | 亚洲国产精品成人久久久 | 国产综合久久 | 欧美精品一二区 | 国产成人精品久久二区二区91 | 国产视频久久久 | 北条麻妃国产九九九精品小说 | 日本在线网站 | 国产做a爱免费视频 | 日韩成人免费中文字幕 | 97免费在线视频 | 狠狠干网站 | 一区二区不卡视频 | 国产极品91 | 日韩欧美高清 | 日韩久久久久久 | 色综合色综合色综合 | 一区二区三区久久 | 欧美不卡一区二区 | 久久久久久中文字幕 | 国产精品毛片无码 | 日韩精品一区二区三区在线观看 | www日本在线 | 久久亚洲春色中文字幕久久久 | 99re6在线视频|