簡體   English   中英

基線配置文件 - 指標不一致

[英]Baseline Profiles - Metrics are not consistent

我在應用程序中實現基線配置文件,當我運行我的宏基准測試時,結果並不一致。 並非總是使用baselineprofile.txt 優化結果。

我正在使用此配置的模擬器中運行宏基准測試:

  • 像素 6
  • Android 11.0 (API 30) x86_64 (Google API)
  • 6144MB 內部存儲
  • 1536GB 內存

我的baselineprofile.txt 文件大小為7MB。

我的結果是,例如:

HomeStartupBenchmark_startupNoCompilation[mode=COLD]
timeToInitialDisplayMs   min 344.4,   median 424.3,   max 466.6
Traces: Iteration 0 1 2 3 4
HomeStartupBenchmark_startupFullCompilation[mode=COLD]
timeToInitialDisplayMs   min 355.0,   median 379.1,   max 690.1
Traces: Iteration 0 1 2 3 4
HomeStartupBenchmark_startupPartialBaseline[mode=COLD]
timeToInitialDisplayMs   min 211.4,   median 319.0,   max 363.3
Traces: Iteration 0 1 2 3 4
HomeStartupBenchmark_startupPartialNoBaseline[mode=COLD]
timeToInitialDisplayMs   min 301.1,   median 396.0,   max 479.3
Traces: Iteration 0 1 2 3 4

HomeStartupBenchmark_startupNoCompilation[mode=WARM]
timeToInitialDisplayMs   min 285.1,   median 385.5,   max 435.4
Traces: Iteration 0 1 2 3 4
HomeStartupBenchmark_startupFullCompilation[mode=WARM]
timeToInitialDisplayMs   min 238.1,   median 331.8,   max 360.9
Traces: Iteration 0 1 2 3 4
HomeStartupBenchmark_startupPartialBaseline[mode=WARM]
timeToInitialDisplayMs   min 263.4,   median 338.9,   max 393.4
Traces: Iteration 0 1 2 3 4
HomeStartupBenchmark_startupPartialNoBaseline[mode=WARM]
timeToInitialDisplayMs   min 281.2,   median 373.1,   max 434.0
Traces: Iteration 0 1 2 3 4

HomeStartupBenchmark_startupNoCompilation[mode=HOT]
timeToInitialDisplayMs   min 243.8,   median 252.2,   max 280.8
Traces: Iteration 0 1 2 3 4
HomeFeedStartupBenchmark_startupFullCompilation[mode=HOT]
timeToInitialDisplayMs   min 219.2,   median 245.9,   max 272.7
Traces: Iteration 0 1 2 3 4
HomeStartupBenchmark_startupPartialBaseline[mode=HOT]
timeToInitialDisplayMs   min 175.4,   median 284.6,   max 611.3
Traces: Iteration 0 1 2 3 4
HomeStartupBenchmark_startupPartialNoBaseline[mode=HOT]
timeToInitialDisplayMs   min 253.0,   median 305.9,   max 310.7
Traces: Iteration 0 1 2 3 4

在本次運行中,startupPartialBaseline 結果在所有編譯模式(COLD、WARM 和 HOT)下都優於 startupPartialNoBaseline,並且還可以。

但在第二次運行中,我得到了:

HomeStartupBenchmark_startupNoCompilation[mode=COLD]
timeToInitialDisplayMs   min   510.6,   median   702.0,   max 1,456.0
Traces: Iteration 0 1 2 3 4
HomeStartupBenchmark_startupFullCompilation[mode=COLD]
timeToInitialDisplayMs   min 323.5,   median 425.0,   max 650.1
Traces: Iteration 0 1 2 3 4
HomeStartupBenchmark_startupPartialBaseline[mode=COLD]
timeToInitialDisplayMs   min   277.8,   median   385.7,   max 1,416.7
Traces: Iteration 0 1 2 3 4
HomeStartupBenchmark_startupPartialNoBaseline[mode=COLD]
timeToInitialDisplayMs   min 249.4,   median 319.4,   max 437.9
Traces: Iteration 0 1 2 3 4

HomeStartupBenchmark_startupNoCompilation[mode=WARM]
timeToInitialDisplayMs   min 217.9,   median 301.1,   max 340.5
Traces: Iteration 0 1 2 3 4
HomeStartupBenchmark_startupFullCompilation[mode=WARM]
timeToInitialDisplayMs   min 197.0,   median 269.0,   max 337.6
Traces: Iteration 0 1 2 3 4
HomeStartupBenchmark_startupPartialBaseline[mode=WARM]
timeToInitialDisplayMs   min 214.6,   median 281.5,   max 323.3
Traces: Iteration 0 1 2 3 4
HomeFeedStartupBenchmark_startupPartialNoBaseline[mode=WARM]
timeToInitialDisplayMs   min 246.4,   median 358.8,   max 418.0
Traces: Iteration 0 1 2 3 4

HomeStartupBenchmark_startupNoCompilation[mode=HOT]
timeToInitialDisplayMs   min 254.1,   median 449.9,   max 473.9
Traces: Iteration 0 1 2 3 4
HomeStartupBenchmark_startupFullCompilation[mode=HOT]
timeToInitialDisplayMs   min   391.3,   median   823.7,   max 1,448.4
Traces: Iteration 0 1 2 3 4
HomeStartupBenchmark_startupPartialBaseline[mode=HOT]
timeToInitialDisplayMs   min 206.1,   median 235.2,   max 335.4
Traces: Iteration 0 1 2 3 4
HomeStartupBenchmark_startupPartialNoBaseline[mode=HOT]
timeToInitialDisplayMs   min 237.8,   median 246.8,   max 275.0
Traces: Iteration 0 1 2 3 4

但是這里使用基線配置文件的 COLD 編譯比不使用基線配置文件的性能最差。

首先確保使用最新的 AGP (7.3.0-rc01)、macrobenchmark (1.2.0-alpha03) 和 profileinstaller (1.2.0)。

您用於基准測試的設備可能在不同的時間處於不同的負載下。
我建議還增加迭代次數,以提供更一致的結果。
對於樣本,我們選擇 5 次迭代作為速度和某種准確結果之間的權衡。
由於您的應用程序的里程數可能會有所不同,因此請使用不同的數字來查看適合您的應用程序。 10 次運行可以提供更准確的結果,但需要更多時間來執行。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM