Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1418)

Unified Diff: runtime/vm/malloc_hooks.cc

Issue 2700033003: Disabled MallocHooks code in Release due to performance concerns. Added enable_malloc_hooks flag to… (Closed)
Patch Set: Created 3 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: runtime/vm/malloc_hooks.cc
diff --git a/runtime/vm/malloc_hooks.cc b/runtime/vm/malloc_hooks.cc
index 08a053a81d19b0b32f277a71a89a9095e50dce7d..64e889270dc850c6b8c602a7fd1409ba020e8e29 100644
--- a/runtime/vm/malloc_hooks.cc
+++ b/runtime/vm/malloc_hooks.cc
@@ -203,52 +203,64 @@ AddressMap* MallocHooksState::address_map_ = NULL;
void MallocHooks::InitOnce() {
- MutexLocker ml(MallocHooksState::malloc_hook_mutex());
- ASSERT(!MallocHooksState::Active());
+ if (FLAG_enable_malloc_hooks) {
zra 2017/02/17 23:43:27 if (!FLAG_enable_malloc_hooks) { return; }
bkonyi 2017/02/18 00:01:11 Done.
+ MutexLocker ml(MallocHooksState::malloc_hook_mutex());
+ ASSERT(!MallocHooksState::Active());
- MallocHookScope::InitMallocHookFlag();
- MallocHooksState::Init();
+ MallocHookScope::InitMallocHookFlag();
+ MallocHooksState::Init();
- // Register malloc hooks.
- bool success = false;
- success = MallocHook::AddNewHook(&MallocHooksState::RecordAllocHook);
- ASSERT(success);
- success = MallocHook::AddDeleteHook(&MallocHooksState::RecordFreeHook);
- ASSERT(success);
+ // Register malloc hooks.
+ bool success = false;
+ success = MallocHook::AddNewHook(&MallocHooksState::RecordAllocHook);
+ ASSERT(success);
+ success = MallocHook::AddDeleteHook(&MallocHooksState::RecordFreeHook);
+ ASSERT(success);
+ }
}
void MallocHooks::TearDown() {
- MutexLocker ml(MallocHooksState::malloc_hook_mutex());
- ASSERT(MallocHooksState::Active());
+ if (FLAG_enable_malloc_hooks) {
zra 2017/02/17 23:43:27 ditto
bkonyi 2017/02/18 00:01:11 Done.
+ MutexLocker ml(MallocHooksState::malloc_hook_mutex());
+ ASSERT(MallocHooksState::Active());
- // Remove malloc hooks.
- bool success = false;
- success = MallocHook::RemoveNewHook(&MallocHooksState::RecordAllocHook);
- ASSERT(success);
- success = MallocHook::RemoveDeleteHook(&MallocHooksState::RecordFreeHook);
- ASSERT(success);
+ // Remove malloc hooks.
+ bool success = false;
+ success = MallocHook::RemoveNewHook(&MallocHooksState::RecordAllocHook);
+ ASSERT(success);
+ success = MallocHook::RemoveDeleteHook(&MallocHooksState::RecordFreeHook);
+ ASSERT(success);
- MallocHooksState::TearDown();
- MallocHookScope::DestroyMallocHookFlag();
+ MallocHooksState::TearDown();
+ MallocHookScope::DestroyMallocHookFlag();
+ }
}
void MallocHooks::ResetStats() {
- MutexLocker ml(MallocHooksState::malloc_hook_mutex());
- if (MallocHooksState::Active()) {
- MallocHooksState::ResetStats();
+ if (FLAG_enable_malloc_hooks) {
zra 2017/02/17 23:43:27 ditto
bkonyi 2017/02/18 00:01:11 Done.
+ MutexLocker ml(MallocHooksState::malloc_hook_mutex());
+ if (MallocHooksState::Active()) {
+ MallocHooksState::ResetStats();
+ }
}
}
bool MallocHooks::Active() {
+ if (!FLAG_enable_malloc_hooks) {
+ return false;
+ }
ASSERT(MallocHooksState::malloc_hook_mutex()->IsOwnedByCurrentThread());
return MallocHooksState::Active();
}
void MallocHooks::PrintToJSONObject(JSONObject* jsobj) {
+ if (!FLAG_enable_malloc_hooks) {
+ return;
+ }
intptr_t allocated_memory = 0;
intptr_t allocation_count = 0;
bool add_usage = false;
@@ -271,12 +283,18 @@ void MallocHooks::PrintToJSONObject(JSONObject* jsobj) {
intptr_t MallocHooks::allocation_count() {
+ if (!FLAG_enable_malloc_hooks) {
+ return 0;
+ }
MutexLocker ml(MallocHooksState::malloc_hook_mutex());
return MallocHooksState::allocation_count();
}
intptr_t MallocHooks::heap_allocated_memory_in_bytes() {
+ if (!FLAG_enable_malloc_hooks) {
+ return 0;
+ }
MutexLocker ml(MallocHooksState::malloc_hook_mutex());
return MallocHooksState::heap_allocated_memory_in_bytes();
}

Powered by Google App Engine
This is Rietveld 408576698