From 0b21e41260bea6c078c18eba745d43e549230fd0 Mon Sep 17 00:00:00 2001 From: David Srbecky Date: Wed, 5 Dec 2018 13:24:06 +0000 Subject: Pack JIT mini-debug-infos together. We currently produce one in-memory ELF file per JITed method, which has significant overheads due to the ELF file headers. Pack several of those files together regularly to save space. Similarly, prune information about methods which were GCed. This reduces the size of JIT mini-debug-info by factor of 10. The final overhead is 5% to 10% relative to the JIT code size. Test: ./art/test.py -b -r -t 137 Change-Id: Idfaff8ed9a209e871e815e527f24f36c63a57bbf --- compiler/jit/jit_compiler.cc | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'compiler/jit/jit_compiler.cc') diff --git a/compiler/jit/jit_compiler.cc b/compiler/jit/jit_compiler.cc index 9b8bb3e90e..27749a61b1 100644 --- a/compiler/jit/jit_compiler.cc +++ b/compiler/jit/jit_compiler.cc @@ -146,7 +146,10 @@ extern "C" void jit_types_loaded(void* handle, mirror::Class** types, size_t cou // (which would have been otherwise used as identifier to remove it later). AddNativeDebugInfoForJit(Thread::Current(), /*code_ptr=*/ nullptr, - elf_file); + elf_file, + debug::PackElfFileForJIT, + compiler_options.GetInstructionSet(), + compiler_options.GetInstructionSetFeatures()); } } -- cgit v1.2.3-59-g8ed1b