diff options
| author | 2014-08-11 13:52:12 -0700 | |
|---|---|---|
| committer | 2014-08-11 14:05:10 -0700 | |
| commit | 093ef212b7db4c17ed62df5cac0c1ac3a24e691d (patch) | |
| tree | 1e4016400e5e44d90c70fcb53ee8dd63e2e7d685 /compiler/driver/compiler_driver.cc | |
| parent | 02a6317297b8745637b265ab75abbfa685879882 (diff) | |
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
Change-Id: I6b78c8c6f6c3bc20c164d951f2af8efbff0b8600
Diffstat (limited to 'compiler/driver/compiler_driver.cc')
| -rw-r--r-- | compiler/driver/compiler_driver.cc | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/compiler/driver/compiler_driver.cc b/compiler/driver/compiler_driver.cc index 1233a0d401..af1fd8815f 100644 --- a/compiler/driver/compiler_driver.cc +++ b/compiler/driver/compiler_driver.cc @@ -1877,10 +1877,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, @@ -1891,6 +1887,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<const DexFile*>& dex_files, |