From a73a8b55415b544355438522524a640378698d85 Mon Sep 17 00:00:00 2001 From: Mathieu Chartier Date: Mon, 11 Aug 2014 13:52:12 -0700 Subject: [PATCH] Move explicit GC after we are done initalizing all classes. Previously we had the GC happen for each dex file, this added a few seconds of time on boot.oat creation. Bug: 16853450 (cherry picked from commit 093ef212b7db4c17ed62df5cac0c1ac3a24e691d) Change-Id: Ia469838eff1550c175c3465a478d8081023601bd --- compiler/driver/compiler_driver.cc | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/compiler/driver/compiler_driver.cc b/compiler/driver/compiler_driver.cc index d14aea3e5..efc5bb754 100644 --- a/compiler/driver/compiler_driver.cc +++ b/compiler/driver/compiler_driver.cc @@ -1852,10 +1852,6 @@ void CompilerDriver::InitializeClasses(jobject jni_class_loader, const DexFile& thread_count = thread_count_; } context.ForAll(0, dex_file.NumClassDefs(), InitializeClass, thread_count); - if (IsImage()) { - // Prune garbage objects created during aborted transactions. - Runtime::Current()->GetHeap()->CollectGarbage(true); - } } void CompilerDriver::InitializeClasses(jobject class_loader, @@ -1866,6 +1862,10 @@ void CompilerDriver::InitializeClasses(jobject class_loader, CHECK(dex_file != NULL); InitializeClasses(class_loader, *dex_file, dex_files, thread_pool, timings); } + if (IsImage()) { + // Prune garbage objects created during aborted transactions. + Runtime::Current()->GetHeap()->CollectGarbage(true); + } } void CompilerDriver::Compile(jobject class_loader, const std::vector& dex_files, -- 2.11.0