Move compiled methods to use AtomicMethodRefMap
Use AtomicMethodRefMap to avoid locking and map costs.
Native RAM usage for interpret-only compile FB:
71270192B -> 64117168B
Perf:
CompilerDriver::GetCompiledMethod: 0.88% -> 0.04%
Mutex::ExclusiveLock: 1.55% -> 1.05%
Bug: 32641252
Test: test-art-host-run-test
Change-Id: I146e7bf2f3328b4fa84f2cc19d591f4da82dccfc
diff --git a/compiler/utils/atomic_method_ref_map.h b/compiler/utils/atomic_method_ref_map.h
index f0db231..11ab211 100644
--- a/compiler/utils/atomic_method_ref_map.h
+++ b/compiler/utils/atomic_method_ref_map.h
@@ -47,6 +47,10 @@
// thread safe.
void AddDexFile(const DexFile* dex_file);
+ bool HaveDexFile(const DexFile* dex_file) const {
+ return arrays_.find(dex_file) != arrays_.end();
+ }
+
// Visit all of the dex files and elements.
template <typename Visitor>
void Visit(const Visitor& visitor);