diff options
| author | 2024-01-22 09:43:55 +0000 | |
|---|---|---|
| committer | 2024-01-23 14:28:20 +0000 | |
| commit | cb406b706134e0e5b444b8c705064de772391481 (patch) | |
| tree | 63ede3bf02d33565cc6b6bcf89af140d85d93d05 /compiler/optimizing/code_generation_data.cc | |
| parent | 0c36cea9ffc17d0fbdb3797917b095818ca15973 (diff) | |
Reduce memory used for blocked registers.
Represent groups of registers blocked for calls, catch
blocks and irreducible loop headers by a special interval
to reduce memory use and improve performance.
Building the boot image on host with
    kArenaAllocatorCountAllocations = true
    kArenaAllocatorPreciseTracking = false
    kArenaAllocatorMemoryReportThreshold = 16 * MB
dex2oat reports only `IActivityManager$Stub.onTransact` and
the difference in arena memory usage is
  - arm:               19481332 -> 18568516
    - ArenaStack:       4913380 -> 4000564
      - SsaLiveness     2435300 -> 1522700
      - RegAllocator     102808 -> 102592
  - arm64:             19500044 -> 17893052
    - ArenaStack:       5601636 -> 3994644
      - SsaLiveness     3122836 -> 1516444
      - RegAllocator     103560 -> 102960
Building a mini boot image (ART module dex files only) for
arm64 with with the "speed" filter and `--dump-timings` and
taking three samples with and without `baseline` I measured
  - "dex2oat took":
    - before: 6.181s, 6.174s, 6.235s
    - after: 6.056s, 6.081s, 6.069s
    - baseline before: 4.189s, 4.075s, 3.876s
    - baseline after: 3.766s, 3.769s, 3.757s
  - sum of the five "Compile Dex File Quick":
    - before: 3.720s, 3.732s, 3.756s
    - after: 3.593s, 3.62s, 3.605s
    - baseline before: 1.645s, 1.469s, 1.425s
    - baseline after: 1.322s, 1.320s, 1.322s
Test: m test-art-host-gtest
Test: testrunner.py --host --optimizing
Bug: 181943478
Change-Id: I356e7cc5a42af9b5b6bfee3dbef538d9025ca398
Diffstat (limited to 'compiler/optimizing/code_generation_data.cc')
0 files changed, 0 insertions, 0 deletions