classes.dex has sawtooth size pattern ever since switching to r8 |
|||||
Issue descriptionHave a look at this graph: https://chromeperf.appspot.com/report?sid=7652282bac32b117c055caae9cee578a55fd431a2e7fe8dbaa6294b93576b832&rev=622298 Example commit from one of the teeth: e17f9fb7f2bcfcb032621a25f9467eec1b990512 - Import wpt@2d42384cf21efd71843295d319c1bab85b3acf4a Web Platform Tests do not affect the apk, so the reason for the sawtooth is probably to do with the fact that different machines are building the apk, and some of them behave differently from the others. The different as shown by: tools/binary_size/diagnose_bloat.py e17f9fb7f2bcfcb032621a25f9467eec1b990512 --cloud Section Sizes (Total=634 bytes (634 bytes)): .dex: 128 bytes (128 bytes) (20.2%) .other: 506 bytes (506 bytes) (79.8%) Dex: -8 entries fields -9 entries strings 513 symbols added (+), 417 changed (~), 521 removed (-), 923710 unchanged (not shown) Added/Removed by section: .dex: -8 .dex.method: +0 Of changed symbols, 911 grew, 540 shrank Number of unique symbols 572806 -> 572798 (-8) Section Legend: t=.text, r=.rodata, R=.data.rel.ro, d=.data, b=.bss, x=.dex, m=.dex.method, p=.pak.translations, P=.pak.nontranslated, o=.other Index | Running Total | Section@Address | Δ PSS (Δ size_without_padding) | Path ------------------------------------------------------------ + 0) 908 (143.2%) m@0x0 908 (0->908) chrome/android/java/src/org/chromium/chrome/browser/download/home/list/DateOrderedListMediator.java DateOrderedListMediator#lambda$shareItemsInternal$1$DateOrderedListMediator - 1) 0 (0.0%) m@0x0 -908 (908->0) chrome/android/java/src/org/chromium/chrome/browser/download/home/list/DateOrderedListMediator.java DateOrderedListMediator#lambda$shareItemsInternal$419$DateOrderedListMediator + 2) 731 (115.3%) m@0x0 731 (0->731) third_party/feed/src/src/main/java/com/google/android/libraries/feed/feedrequestmanager/FeedRequestManager.java FeedRequestManager#lambda$executeRequest$2$FeedRequestManager - 3) 0 (0.0%) m@0x0 -731 (731->0) third_party/feed/src/src/main/java/com/google/android/libraries/feed/feedrequestmanager/FeedRequestManager.java FeedRequestManager#lambda$executeRequest$37$FeedRequestManager + 4) 558 (88.0%) m@0x0 558 (0->558) chrome/android/java/src/org/chromium/chrome/browser/download/DownloadLocationDialogBridge.java DownloadLocationDialogBridge#lambda$showDialog$0$DownloadLocationDialogBridge - 5) 0 (0.0%) m@0x0 -558 (558->0) chrome/android/java/src/org/chromium/chrome/browser/download/DownloadLocationDialogBridge.java DownloadLocationDialogBridge#lambda$showDialog$409$DownloadLocationDialogBridge + 6) 533 (84.1%) m@0x0 533 (0->533) chrome/android/java/src/org/chromium/chrome/browser/offlinepages/downloads/OfflinePageDownloadBridge.java OfflinePageDownloadBridge#lambda$openItem$0$OfflinePageDownloadBridge - 7) 0 (0.0%) m@0x0 -533 (533->0) chrome/android/java/src/org/chromium/chrome/browser/offlinepages/downloads/OfflinePageDownloadBridge.java OfflinePageDownloadBridge#lambda$openItem$540$OfflinePageDownloadBridge + 8) 529 (83.4%) m@0x0 529 (0->529) third_party/feed/src/src/main/java/com/google/android/libraries/feed/feedmodelprovider/internal/ModelChildBinder.java ModelChildBinder#lambda$bindChildren$0$ModelChildBinder - 9) 0 (0.0%) m@0x0 -529 (529->0) third_party/feed/src/src/main/java/com/google/android/libraries/feed/feedmodelprovider/internal/ModelChildBinder.java ModelChildBinder#lambda$bindChildren$34$ModelChildBinder + 10) 516 (81.4%) m@0x0 516 (0->516) chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java ChromeActivity#lambda$addOrEditBookmark$12$ChromeActivity - 11) 0 (0.0%) m@0x0 -516 (516->0) chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java ChromeActivity#lambda$addOrEditBookmark$19$ChromeActivity ~ 12) 506 (79.8%) o@0x0 506 (0->0) {no path} Overhead: APK file + 13) 943 (148.7%) m@0x0 437 (0->437) third_party/feed/src/src/main/java/com/google/android/libraries/feed/feedstore/internal/PersistentFeedStore.java PersistentFeedStore#lambda$triggerContentGc$1$PersistentFeedStore - 14) 506 (79.8%) m@0x0 -437 (437->0) third_party/feed/src/src/main/java/com/google/android/libraries/feed/feedstore/internal/PersistentFeedStore.java PersistentFeedStore#lambda$triggerContentGc$61$PersistentFeedStore + 15) 925 (145.9%) m@0x0 419 (0->419) chrome/android/java/src/org/chromium/chrome/browser/preferences/download/DownloadDirectoryAdapter.java DownloadDirectoryAdapter#lambda$update$0$DownloadDirectoryAdapter - 16) 506 (79.8%) m@0x0 -419 (419->0) chrome/android/java/src/org/chromium/chrome/browser/preferences/download/DownloadDirectoryAdapter.java DownloadDirectoryAdapter#lambda$update$408$DownloadDirectoryAdapter + 17) 917 (144.6%) m@0x0 411 (0->411) chrome/android/java/src/org/chromium/chrome/browser/widget/ListMenuButton.java ListMenuButton#lambda$onFinishInflate$0$ListMenuButton - 18) 506 (79.8%) m@0x0 -411 (411->0) chrome/android/java/src/org/chromium/chrome/browser/widget/ListMenuButton.java ListMenuButton#lambda$onFinishInflate$103$ListMenuButton + 19) 916 (144.5%) m@0x0 410 (0->410) chrome/android/java/src/org/chromium/chrome/browser/incognito/IncognitoNotificationService.java IncognitoNotificationService#lambda$onHandleIntent$1$IncognitoNotificationService - 20) 506 (79.8%) m@0x0 -410 (410->0) chrome/android/java/src/org/chromium/chrome/browser/incognito/IncognitoNotificationService.java IncognitoNotificationService#lambda$onHandleIntent$504$IncognitoNotificationService + 21) 907 (143.1%) m@0x0 401 (0->401) android_webview/java/src/org/chromium/android_webview/AwBrowserProcess.java AwBrowserProcess#lambda$start$0$AwBrowserProcess - 22) 506 (79.8%) m@0x0 -401 (401->0) android_webview/java/src/org/chromium/android_webview/AwBrowserProcess.java AwBrowserProcess#lambda$start$45$AwBrowserProcess + 23) 883 (139.3%) m@0x0 377 (0->377) chrome/android/java/src/org/chromium/chrome/browser/download/OMADownloadHandler.java OMADownloadHandler#lambda$showOMAInfoDialog$0$OMADownloadHandler - 24) 506 (79.8%) m@0x0 -377 (377->0) chrome/android/java/src/org/chromium/chrome/browser/download/OMADownloadHandler.java OMADownloadHandler#lambda$showOMAInfoDialog$397$OMADownloadHandler - 25) 155 (24.4%) m@0x0 -351 (351->0) chrome/android/java/src/org/chromium/chrome/browser/download/DownloadManagerService.java Looking at the subsequent commit, the diff is exactly reversed. Probably something we'll need r8-team to investigate.
,
Jan 14
,
Jan 14
I don't think this is r8's fault actually. I ssh'ed into two slaves that formed a peak, and the input .jar files are different. Seems the bots have different java versions: * 1.8.0_45-internal (Oracle Corporation) vs * 1.8.0_162 (Oracle Corporation)
,
Jan 14
Putting into infra queue.
,
Jan 15
,
Jan 16
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/28543d8fe6777cfa45a11cf7e028a4b86f89b9f0 commit 28543d8fe6777cfa45a11cf7e028a4b86f89b9f0 Author: Andrew Grieve <agrieve@chromium.org> Date: Wed Jan 16 00:36:53 2019 Revert "Android: Parallelize Error Prone" This reverts commit 3cc62d6500b11c4ac271832766140fc9000e0331. Reason for revert: Our bots don't have a consistent javac version Original change's description: > Android: Parallelize Error Prone > > Run two compile_java steps in parallel, one without errorprone (~20s) to > unblock subsequent build steps (desugar, bytecode rewriting, dexing), > and one with errorprone (if enabled) to check the build (~40s). > > This saves approximately 19 seconds for the overall incremental build of > chrome_java. > > Bug: 906803 > Change-Id: I4dee29c246bbc65791088dcc5e38d1030310c466 > Reviewed-on: https://chromium-review.googlesource.com/c/1346992 > Commit-Queue: Peter Wen <wnwen@chromium.org> > Reviewed-by: agrieve <agrieve@chromium.org> > Cr-Commit-Position: refs/heads/master@{#610477} Bug: 906803, 693079, 921422 Change-Id: I3a09313563dd702c6fff4f351602d6f80bbf883e Reviewed-on: https://chromium-review.googlesource.com/c/1412273 Reviewed-by: Eric Stevenson <estevenson@chromium.org> Commit-Queue: agrieve <agrieve@chromium.org> Cr-Commit-Position: refs/heads/master@{#622934} [modify] https://crrev.com/28543d8fe6777cfa45a11cf7e028a4b86f89b9f0/build/android/gyp/javac.py [modify] https://crrev.com/28543d8fe6777cfa45a11cf7e028a4b86f89b9f0/build/config/android/internal_rules.gni
,
Jan 16
(6 days ago)
From what I can see, the revert did not change the sawtooth pattern: https://chromeperf.appspot.com/report?sid=7652282bac32b117c055caae9cee578a55fd431a2e7fe8dbaa6294b93576b832&rev=622934 Will start a reland unless I misunderstood the graphs.
,
Jan 17
(6 days ago)
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/fd9e2835636c89c2e177fbbf640f464b59e1f27b commit fd9e2835636c89c2e177fbbf640f464b59e1f27b Author: Peter Wen <wnwen@chromium.org> Date: Thu Jan 17 04:17:11 2019 Reland "Android: Parallelize Error Prone" Original CL: https://crrev.com/c/1346992 This is a simple reland as the revert was speculative and did not remove perf bot issues. Bug: 906803, 693079, 921422 Change-Id: Iaddeaf90a40c261775885a1ef37d4320a2e39cd4 Reviewed-on: https://chromium-review.googlesource.com/c/1414875 Commit-Queue: agrieve <agrieve@chromium.org> Reviewed-by: agrieve <agrieve@chromium.org> Cr-Commit-Position: refs/heads/master@{#623572} [modify] https://crrev.com/fd9e2835636c89c2e177fbbf640f464b59e1f27b/build/android/gyp/javac.py [modify] https://crrev.com/fd9e2835636c89c2e177fbbf640f464b59e1f27b/build/config/android/internal_rules.gni
,
Jan 17
(5 days ago)
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/21f79dc8a0c822a4e5bb676bd04e22b58974ab69 commit 21f79dc8a0c822a4e5bb676bd04e22b58974ab69 Author: Andrew Grieve <agrieve@chromium.org> Date: Thu Jan 17 23:25:24 2019 Android: Use errorprone with checks disabled rather than javac javac version changes based the host machine, and varying versions is currently causing a sawtooth build size for MonochromePublic.apk Bug: 693079, 921422 Change-Id: I0b7a921bce86f0d88c56f29f47886d60578807f2 Reviewed-on: https://chromium-review.googlesource.com/c/1418898 Reviewed-by: Peter Wen <wnwen@chromium.org> Commit-Queue: Peter Wen <wnwen@chromium.org> Cr-Commit-Position: refs/heads/master@{#623903} [modify] https://crrev.com/21f79dc8a0c822a4e5bb676bd04e22b58974ab69/build/android/gyp/javac.py [modify] https://crrev.com/21f79dc8a0c822a4e5bb676bd04e22b58974ab69/build/config/android/internal_rules.gni
,
Jan 17
(5 days ago)
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/89794a7a6cd8e6a84d6f3c1df7184815ec09fe36 commit 89794a7a6cd8e6a84d6f3c1df7184815ec09fe36 Author: Thomas Anderson <thomasanderson@chromium.org> Date: Thu Jan 17 23:31:26 2019 Revert "Android: Use errorprone with checks disabled rather than javac" This reverts commit 21f79dc8a0c822a4e5bb676bd04e22b58974ab69. Reason for revert: breaks build on android-rel: https://ci.chromium.org/p/chromium/builders/luci.chromium.ci/android-rel/7111 Original change's description: > Android: Use errorprone with checks disabled rather than javac > > javac version changes based the host machine, and varying versions is > currently causing a sawtooth build size for MonochromePublic.apk > > Bug: 693079, 921422 > Change-Id: I0b7a921bce86f0d88c56f29f47886d60578807f2 > Reviewed-on: https://chromium-review.googlesource.com/c/1418898 > Reviewed-by: Peter Wen <wnwen@chromium.org> > Commit-Queue: Peter Wen <wnwen@chromium.org> > Cr-Commit-Position: refs/heads/master@{#623903} TBR=wnwen@chromium.org,agrieve@chromium.org Change-Id: I586133a80c3c2e13834541a210277891242e2a34 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: 693079, 921422 Reviewed-on: https://chromium-review.googlesource.com/c/1419301 Reviewed-by: Thomas Anderson <thomasanderson@chromium.org> Commit-Queue: Thomas Anderson <thomasanderson@chromium.org> Cr-Commit-Position: refs/heads/master@{#623905} [modify] https://crrev.com/89794a7a6cd8e6a84d6f3c1df7184815ec09fe36/build/android/gyp/javac.py [modify] https://crrev.com/89794a7a6cd8e6a84d6f3c1df7184815ec09fe36/build/config/android/internal_rules.gni
,
Jan 18
(5 days ago)
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/999d2d0bbcb798d24840308486f8c1adc223a4c8 commit 999d2d0bbcb798d24840308486f8c1adc223a4c8 Author: Andrew Grieve <agrieve@chromium.org> Date: Fri Jan 18 02:56:07 2019 Reland "Android: Use errorprone with checks disabled rather than javac" javac version changes based the host machine, and varying versions is currently causing a sawtooth build size for MonochromePublic.apk Reverted in: 89794a7a6cd8e6a84d6f3c1df7184815ec09fe36. Reason for reland: Fixed missing dep. TBR=wnwen@chromium.org Change-Id: I9244fd4324b2f545d2b12ce1396e47ced2c812b1 Bug: 693079, 921422 Reviewed-on: https://chromium-review.googlesource.com/c/1419202 Commit-Queue: agrieve <agrieve@chromium.org> Reviewed-by: agrieve <agrieve@chromium.org> Cr-Commit-Position: refs/heads/master@{#623974} [modify] https://crrev.com/999d2d0bbcb798d24840308486f8c1adc223a4c8/build/android/gyp/javac.py [modify] https://crrev.com/999d2d0bbcb798d24840308486f8c1adc223a4c8/build/config/android/internal_rules.gni
,
Jan 19
(4 days ago)
Finally fixed! |
|||||
►
Sign in to add a comment |
|||||
Comment 1 by agrieve@chromium.org
, Jan 14