tree 2a26914b4dd393f16341fb4894cb686604b680c0
parent 22541cb0ee6e5d4200e9142983800a697e682ead
author art-benchmark-service <art-benchmark-service@google.com> 1696179243 -0700
committer Islam Elbanna <islamelbanna@google.com> 1696246190 +0000

Update boot image and system server profiles [M25C20P56S0PP]

Bug: 254051423
Bug: 299558523
Bug: 299514114
Bug: 299595206
Bug: 299572243

Test: go/art-benchmark?p=BootImageProfileId:36420&f=CandidateName:in:36422
Test: ATP test https://android-build.googleplex.com/builds/abtd/run/L12500000963261237

= Perf stats =
(lower is better)

Regular update to the boot image profiles, Benchmark shows an improvement in boot time and great code size reduction, besides no noticeable impact on memory and startup time. This change also will resolve some of the regressions from the prev updates.

         Avg % (Confidence interval min-max %)
Startup: 0.12 (-1.19 -> 1.43)
Memory(PSS): -0.53 (-2.16 -> 1.1)
Boot time: -1.09 (-1.8 -> -0.38)
Code size (.oat + .art + .odex): -0.51MB (-0.62%)

Ignore-AOSP-First: Boot image profiles
BYPASS_INCLUSIVE_LANGUAGE_REASON: Profile of existing code

=Generation Strategy=

method_threshold: 0.25
image_class_threshold: 0.2
preloaded_classes_threshold: 0.56
priority_packages_thresholds {
  key: "service-appsearch.jar.prof:CLASS:android"
  value: 0.014285714
}
priority_packages_thresholds {
  key: "service-appsearch.jar.prof:METHOD:android"
  value: 0.017857144
}
priority_packages_thresholds {
  key: "service-art.jar.prof:CLASS:android"
  value: 0.014285714
}
priority_packages_thresholds {
  key: "service-art.jar.prof:METHOD:android"
  value: 0.017857144
}
priority_packages_thresholds {
  key: "service-connectivity.jar.prof:CLASS:android"
  value: 0.014285714
}
priority_packages_thresholds {
  key: "service-connectivity.jar.prof:METHOD:android"
  value: 0.017857144
}
priority_packages_thresholds {
  key: "service-wifi.jar.prof:CLASS:android"
  value: 0.014285714
}
priority_packages_thresholds {
  key: "service-wifi.jar.prof:METHOD:android"
  value: 0.017857144
}
priority_packages_thresholds {
  key: "services.jar.prof:CLASS:android"
  value: 0.014285714
}
priority_packages_thresholds {
  key: "services.jar.prof:METHOD:android"
  value: 0.017857144
}

=Profile stats=

Data info:
- total aggregations: 31
- number of (device types, builds): 16

File boot-image-profile.txt
  - hot methods: 3145 added, 3473 removed
  - methods: 3145 added, 3473 removed
  - classes: 24 added, 123 removed
  - totals now: 32486 hot methods, 32486 methods, 17264 classes
  - totals before: 32814 hot methods, 32814 methods, 17363 classes

  per package info as csv (selected):
    package_name, hot_a, hot_r, cl_a, cl_r, hot_num, cl_num
    android, 1842, 2107, 20, 122, 20998, 9945
    com.android, 146, 181, 4, 1, 2426, 3481
    java, 917, 944, 0, 0, 7094, 2101
    android.view, 348, 422, 7, 2, 3417, 1052
    android.hardware, 18, 29, 1, 0, 497, 859
    android.animation, 17, 34, 0, 7, 397, 75
    android.app, 136, 140, 8, 0, 2942, 1107
    android.content, 196, 200, 1, 0, 1888, 585
    android.graphics, 158, 165, 0, 0, 1968, 345
    android.icu, 232, 239, 0, 0, 2048, 1474
    android.media, 19, 20, 0, 0, 792, 604
    android.net, 44, 43, 0, 1, 252, 220
    android.widget, 147, 154, 1, 1, 1402, 399

File preloaded-classes
  - hot methods: 0 added, 0 removed
  - methods: 0 added, 0 removed
  - classes: 0 added, 139 removed
  - totals now: 0 hot methods, 0 methods, 17194 classes
  - totals before: 0 hot methods, 0 methods, 17333 classes

  per package info as csv (selected):
    package_name, hot_a, hot_r, cl_a, cl_r, hot_num, cl_num
    android, 0, 0, 0, 135, 0, 9894
    com.android, 0, 0, 0, 3, 0, 3469
    java, 0, 0, 0, 1, 0, 2097
    android.view, 0, 0, 0, 6, 0, 1041
    android.hardware, 0, 0, 0, 4, 0, 853
    android.animation, 0, 0, 0, 9, 0, 73
    android.media, 0, 0, 0, 1, 0, 600
    android.net, 0, 0, 0, 1, 0, 220
    android.widget, 0, 0, 0, 1, 0, 397

File boot-image-profile.txt
  - hot methods: 1938 added, 2238 removed
  - methods: 1938 added, 2238 removed
  - classes: 24 added, 125 removed
  - totals now: 22447 hot methods, 22447 methods, 14052 classes
  - totals before: 22747 hot methods, 22747 methods, 14153 classes

  per package info as csv (selected):
    package_name, hot_a, hot_r, cl_a, cl_r, hot_num, cl_num
    android, 1838, 2103, 20, 122, 20934, 9914
    com.android, 100, 135, 4, 1, 1416, 3052
    java, 0, 0, 0, 2, 2, 116
    android.view, 348, 422, 7, 2, 3417, 1052
    android.hardware, 18, 29, 1, 0, 497, 859
    android.animation, 17, 34, 0, 7, 397, 75
    android.app, 136, 140, 8, 0, 2942, 1107
    android.content, 196, 200, 1, 0, 1888, 585
    android.graphics, 158, 165, 0, 0, 1968, 345
    android.icu, 232, 239, 0, 0, 2048, 1474
    android.media, 19, 20, 0, 0, 792, 604
    android.net, 44, 43, 0, 1, 252, 220
    android.widget, 147, 154, 1, 1, 1402, 399

File preloaded-classes
  - hot methods: 0 added, 0 removed
  - methods: 0 added, 0 removed
  - classes: 0 added, 140 removed
  - totals now: 0 hot methods, 0 methods, 13987 classes
  - totals before: 0 hot methods, 0 methods, 14127 classes

  per package info as csv (selected):
    package_name, hot_a, hot_r, cl_a, cl_r, hot_num, cl_num
    android, 0, 0, 0, 135, 0, 9863
    com.android, 0, 0, 0, 3, 0, 3040
    java, 0, 0, 0, 2, 0, 116
    android.view, 0, 0, 0, 6, 0, 1041
    android.hardware, 0, 0, 0, 4, 0, 853
    android.animation, 0, 0, 0, 9, 0, 73
    android.media, 0, 0, 0, 1, 0, 600
    android.net, 0, 0, 0, 1, 0, 220
    android.widget, 0, 0, 0, 1, 0, 397

File art-profile
  - hot methods: 5705 added, 3202 removed
  - methods: 5705 added, 3202 removed
  - classes: 1243 added, 14 removed
  - totals now: 14592 hot methods, 14592 methods, 2694 classes
  - totals before: 12089 hot methods, 12089 methods, 1465 classes

  per package info as csv (selected):
    package_name, hot_a, hot_r, cl_a, cl_r, hot_num, cl_num
    android, 46, 21, 21, 8, 91, 45
    com.android, 5659, 3181, 1205, 5, 14501, 2603
    java, 0, 0, 0, 1, 0, 0
    android.hardware, 45, 19, 17, 1, 76, 29
    android.app, 1, 0, 2, 0, 1, 4
    android.content, 0, 0, 1, 1, 2, 4
    android.net, 0, 2, 0, 0, 8, 3

InternalReferenceRawProfileId: 36420
InternalReferenceCandidateProfileId: 36422

Test: build & benchmark

Change-Id: Ia2d60e41a204ef584c4a1ef91759e97ce37813ce
