summaryrefslogtreecommitdiff
path: root/compiler/optimizing/graph_visualizer.cc
diff options
context:
space:
mode:
authorJean-Philippe Halimi <jean-philippe.halimi@intel.com>2016-02-02 19:48:52 +0100
committerJean-Philippe Halimi <jean-philippe.halimi@intel.com>2016-02-19 13:43:24 +0100
commitca76a1a0c1737b3e04961ba382c113102fdc00bf (patch)
treec2a2adce6d3bc78be4b34ed7f7982155b4c5eefc /compiler/optimizing/graph_visualizer.cc
parent99da8cd8818e015b21d1c2af73ac40749698c930 (diff)
Dex-wide ArenaPool scoping for AOT compilation
The Arena Pool is a structure that holds memory allocated by the Arena Allocator, preventing system allocations and deallocations to occur too often during AOT compilation. Currently, the Arena Pool holds memory it allocates during the whole AOT compilation process. Unfortunately, such a behavior generates memory usage overhead, which is exacerbated by bigger applications such as Facebook. In this particular app, method size imbalance provokes unnecessary memory pressure, as one method might require a lot of arena allocations that won't be used in the remaining compilation. Because the compiler memory footprint keeps increasing during AOT compilation, the memory pressure becomes very high. The proposed patch is an attempt to find a tradeoff between allocations / deallocations time overhead, and the aforementioned memory pressure overhead resulting of the allocations being held by the Arena Pool. The patch adds a feature freeing up all memory allocated in the Arena Pool after each dex file is done compiling. We have measured no significant AOT compile-time overhead with the patch (<0.3%), because the selected dex-file granularity is coarse enough. In the meantime, it provides significant memory footprint improvements. The impact is especially big with Facebook, because this app has a few methods generating huge memory footprint peaks (peak native heap footprint goes down 34%). Change-Id: I27e867e6a20b8a6c28a82cb83140941a8c2b5847 Signed-off-by: Jean-Philippe Halimi <jean-philippe.halimi@intel.com>
Diffstat (limited to 'compiler/optimizing/graph_visualizer.cc')
0 files changed, 0 insertions, 0 deletions