summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Nicolas Geoffray <ngeoffray@google.com> 2015-10-28 17:39:47 +0000
committer Nicolas Geoffray <ngeoffray@google.com> 2015-10-28 17:51:53 +0000
commit4e915fbc2be5fc43c782389bbbb7306cd76a523a (patch)
treec85e0ab3b80393a46dbc98e217678337567e26ce
parent28b48026f0686f93b31b9cad47671c18837acc56 (diff)
Tune heuristics a bit.
First version. Seems to be more in line with what we're seeing. Change-Id: I5117352c13cb2e95d16f0c9b05b1faf37c05d710
-rw-r--r--runtime/jit/jit.h2
-rw-r--r--runtime/jit/jit_code_cache.cc4
-rw-r--r--runtime/jit/jit_instrumentation.cc2
3 files changed, 4 insertions, 4 deletions
diff --git a/runtime/jit/jit.h b/runtime/jit/jit.h
index e73ba82278..1f89f9b1b7 100644
--- a/runtime/jit/jit.h
+++ b/runtime/jit/jit.h
@@ -43,7 +43,7 @@ class JitOptions;
class Jit {
public:
static constexpr bool kStressMode = kIsDebugBuild;
- static constexpr size_t kDefaultCompileThreshold = kStressMode ? 2 : 1000;
+ static constexpr size_t kDefaultCompileThreshold = kStressMode ? 2 : 500;
static constexpr size_t kDefaultWarmupThreshold = kDefaultCompileThreshold / 2;
virtual ~Jit();
diff --git a/runtime/jit/jit_code_cache.cc b/runtime/jit/jit_code_cache.cc
index 2596dd974d..60568b2f77 100644
--- a/runtime/jit/jit_code_cache.cc
+++ b/runtime/jit/jit_code_cache.cc
@@ -57,9 +57,9 @@ JitCodeCache* JitCodeCache::Create(size_t capacity, std::string* error_msg) {
return nullptr;
}
- // Data cache is 1 / 4 of the map.
+ // Data cache is 1 / 2 of the map.
// TODO: Make this variable?
- size_t data_size = RoundUp(data_map->Size() / 4, kPageSize);
+ size_t data_size = RoundUp(data_map->Size() / 2, kPageSize);
size_t code_size = data_map->Size() - data_size;
uint8_t* divider = data_map->Begin() + data_size;
diff --git a/runtime/jit/jit_instrumentation.cc b/runtime/jit/jit_instrumentation.cc
index 2dd953bb94..8aaa5fa304 100644
--- a/runtime/jit/jit_instrumentation.cc
+++ b/runtime/jit/jit_instrumentation.cc
@@ -86,7 +86,6 @@ void JitInstrumentationCache::DeleteThreadPool() {
}
void JitInstrumentationCache::AddSamples(Thread* self, ArtMethod* method, size_t) {
- ScopedObjectAccessUnchecked soa(self);
// Since we don't have on-stack replacement, some methods can remain in the interpreter longer
// than we want resulting in samples even after the method is compiled.
if (method->IsClassInitializer() || method->IsNative()) {
@@ -126,6 +125,7 @@ void JitInstrumentationListener::InvokeVirtualOrInterface(Thread* thread,
ArtMethod* caller,
uint32_t dex_pc,
ArtMethod* callee ATTRIBUTE_UNUSED) {
+ instrumentation_cache_->AddSamples(thread, caller, 1);
// We make sure we cannot be suspended, as the profiling info can be concurrently deleted.
thread->StartAssertNoThreadSuspension("Instrumenting invoke");
DCHECK(this_object != nullptr);