From 53e0776d967324e2908e3be56b80cddb2c9d9e03 Mon Sep 17 00:00:00 2001 From: Brian Carlstrom Date: Fri, 27 Jun 2014 14:15:19 -0700 Subject: [PATCH] Use current max product dalvik.vm.heapsize as default dex2oat heap size Bug: 15919420 (cherry picked from commit 3aa138617b42b87069dbac0b441bd14dca2d8609) Change-Id: I569ba111c6163e94dd1b09b21ef374f05d263e72 --- cmds/installd/commands.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/cmds/installd/commands.c b/cmds/installd/commands.c index 01eb5efa5..ca30f9100 100644 --- a/cmds/installd/commands.c +++ b/cmds/installd/commands.c @@ -633,6 +633,11 @@ static void run_dex2oat(int zip_fd, int oat_fd, const char* input_file_name, bool profiler = (property_get("dalvik.vm.profiler", prop_buf, "0") > 0) && (prop_buf[0] == '1'); static const char* DEX2OAT_BIN = "/system/bin/dex2oat"; + + // TODO: Make this memory value configurable with a system property b/15919420 + static const char* RUNTIME_ARG = "--runtime-arg"; + static const char* MEMORY_MAX_ARG = "-Xmx512m"; + static const int MAX_INT_LEN = 12; // '-'+10dig+'\0' -OR- 0x+8dig static const unsigned int MAX_INSTRUCTION_SET_LEN = 32; @@ -676,12 +681,14 @@ static void run_dex2oat(int zip_fd, int oat_fd, const char* input_file_name, ALOGV("Running %s in=%s out=%s\n", DEX2OAT_BIN, input_file_name, output_file_name); - char* argv[7 // program name, mandatory arguments and the final NULL + char* argv[9 // program name, mandatory arguments and the final NULL + (have_profile_file ? 1 : 0) + (have_top_k_profile_threshold ? 1 : 0) + (have_dex2oat_flags ? 1 : 0)]; int i = 0; argv[i++] = (char*)DEX2OAT_BIN; + argv[i++] = (char*)RUNTIME_ARG; + argv[i++] = (char*)MEMORY_MAX_ARG; argv[i++] = zip_fd_arg; argv[i++] = zip_location_arg; argv[i++] = oat_fd_arg;