Index: third_party/tcmalloc/chromium/src/heap-profiler.cc |
diff --git a/third_party/tcmalloc/chromium/src/heap-profiler.cc b/third_party/tcmalloc/chromium/src/heap-profiler.cc |
index 46a81a499037487b69315b80c0105840a2eac1fa..43a6f35ec5e0814e9696f19edd7224c740e91bcf 100644 |
--- a/third_party/tcmalloc/chromium/src/heap-profiler.cc |
+++ b/third_party/tcmalloc/chromium/src/heap-profiler.cc |
@@ -68,7 +68,6 @@ |
#include "base/spinlock.h" |
#include "base/low_level_alloc.h" |
#include "base/sysinfo.h" // for GetUniquePathFromEnv() |
-#include "deep-heap-profile.h" |
#include "heap-profile-table.h" |
#include "memory_region_map.h" |
@@ -81,38 +80,6 @@ |
#endif |
#endif |
-#if defined(__ANDROID__) || defined(ANDROID) |
-// On android, there are no environment variables. |
-// Instead, we use system properties, set via: |
-// adb shell setprop prop_name prop_value |
-// From <sys/system_properties.h>, |
-// PROP_NAME_MAX 32 |
-// PROP_VALUE_MAX 92 |
-#define HEAPPROFILE "heapprof" |
-#define HEAP_PROFILE_ALLOCATION_INTERVAL "heapprof.allocation_interval" |
-#define HEAP_PROFILE_DEALLOCATION_INTERVAL "heapprof.deallocation_interval" |
-#define HEAP_PROFILE_INUSE_INTERVAL "heapprof.inuse_interval" |
-#define HEAP_PROFILE_TIME_INTERVAL "heapprof.time_interval" |
-#define HEAP_PROFILE_MMAP_LOG "heapprof.mmap_log" |
-#define HEAP_PROFILE_MMAP "heapprof.mmap" |
-#define HEAP_PROFILE_ONLY_MMAP "heapprof.only_mmap" |
-#define DEEP_HEAP_PROFILE "heapprof.deep_heap_profile" |
-#define DEEP_HEAP_PROFILE_PAGEFRAME "heapprof.deep.pageframe" |
-#define HEAP_PROFILE_TYPE_STATISTICS "heapprof.type_statistics" |
-#else // defined(__ANDROID__) || defined(ANDROID) |
-#define HEAPPROFILE "HEAPPROFILE" |
-#define HEAP_PROFILE_ALLOCATION_INTERVAL "HEAP_PROFILE_ALLOCATION_INTERVAL" |
-#define HEAP_PROFILE_DEALLOCATION_INTERVAL "HEAP_PROFILE_DEALLOCATION_INTERVAL" |
-#define HEAP_PROFILE_INUSE_INTERVAL "HEAP_PROFILE_INUSE_INTERVAL" |
-#define HEAP_PROFILE_TIME_INTERVAL "HEAP_PROFILE_TIME_INTERVAL" |
-#define HEAP_PROFILE_MMAP_LOG "HEAP_PROFILE_MMAP_LOG" |
-#define HEAP_PROFILE_MMAP "HEAP_PROFILE_MMAP" |
-#define HEAP_PROFILE_ONLY_MMAP "HEAP_PROFILE_ONLY_MMAP" |
-#define DEEP_HEAP_PROFILE "DEEP_HEAP_PROFILE" |
-#define DEEP_HEAP_PROFILE_PAGEFRAME "DEEP_HEAP_PROFILE_PAGEFRAME" |
-#define HEAP_PROFILE_TYPE_STATISTICS "HEAP_PROFILE_TYPE_STATISTICS" |
-#endif // defined(__ANDROID__) || defined(ANDROID) |
- |
using STL_NAMESPACE::string; |
using STL_NAMESPACE::sort; |
@@ -154,20 +121,6 @@ DEFINE_bool(only_mmap_profile, |
EnvToBool(HEAP_PROFILE_ONLY_MMAP, false), |
"If heap-profiling is on, only profile mmap, mremap, and sbrk; " |
"do not profile malloc/new/etc"); |
-DEFINE_bool(deep_heap_profile, |
- EnvToBool(DEEP_HEAP_PROFILE, false), |
- "If heap-profiling is on, profile deeper (Linux and Android)"); |
-DEFINE_int32(deep_heap_profile_pageframe, |
- EnvToInt(DEEP_HEAP_PROFILE_PAGEFRAME, 0), |
- "Needs deeper profile. If 1, dump page frame numbers (PFNs). " |
- "If 2, dump page counts (/proc/kpagecount) with PFNs."); |
-#if defined(TYPE_PROFILING) |
-DEFINE_bool(heap_profile_type_statistics, |
- EnvToBool(HEAP_PROFILE_TYPE_STATISTICS, false), |
- "If heap-profiling is on, dump type statistics."); |
-#endif // defined(TYPE_PROFILING) |
- |
- |
//---------------------------------------------------------------------- |
// Locking |
//---------------------------------------------------------------------- |
@@ -220,7 +173,6 @@ static int64 high_water_mark = 0; // In-use-bytes at last high-water dump |
static int64 last_dump_time = 0; // The time of the last dump |
static HeapProfileTable* heap_profile = NULL; // the heap profile table |
-static DeepHeapProfile* deep_profile = NULL; // deep memory profiler |
// Callback to generate a stack trace for an allocation. May be overriden |
// by an application to provide its own pseudo-stacks. |
@@ -301,25 +253,11 @@ static void DumpProfileLocked(const char* reason) { |
reinterpret_cast<char*>(ProfilerMalloc(kProfileBufferSize)); |
} |
- if (deep_profile) { |
- deep_profile->DumpOrderedProfile(reason, global_profiler_buffer, |
- kProfileBufferSize, fd); |
- } else { |
- char* profile = DoGetHeapProfileLocked(global_profiler_buffer, |
- kProfileBufferSize); |
- RawWrite(fd, profile, strlen(profile)); |
- } |
+ char* profile = DoGetHeapProfileLocked(global_profiler_buffer, |
+ kProfileBufferSize); |
+ RawWrite(fd, profile, strlen(profile)); |
RawClose(fd); |
-#if defined(TYPE_PROFILING) |
- if (FLAGS_heap_profile_type_statistics) { |
- snprintf(file_name, sizeof(file_name), "%s.%05d.%04d.type", |
- filename_prefix, getpid(), dump_count); |
- RAW_VLOG(0, "Dumping type statistics to %s", file_name); |
- heap_profile->DumpTypeStatistics(file_name); |
- } |
-#endif // defined(TYPE_PROFILING) |
- |
dumping = false; |
} |
@@ -529,14 +467,6 @@ extern "C" void HeapProfilerStart(const char* prefix) { |
high_water_mark = 0; |
last_dump_time = 0; |
- if (FLAGS_deep_heap_profile) { |
- // Initialize deep memory profiler |
- RAW_VLOG(0, "[%d] Starting a deep memory profiler", getpid()); |
- deep_profile = new(ProfilerMalloc(sizeof(DeepHeapProfile))) |
- DeepHeapProfile(heap_profile, prefix, DeepHeapProfile::PageFrameType( |
- FLAGS_deep_heap_profile_pageframe)); |
- } |
- |
// We do not reset dump_count so if the user does a sequence of |
// HeapProfilerStart/HeapProfileStop, we will get a continuous |
// sequence of profiles. |
@@ -598,13 +528,6 @@ extern "C" void HeapProfilerStop() { |
RAW_CHECK(MallocHook::RemoveMunmapHook(&MunmapHook), ""); |
} |
- if (deep_profile) { |
- // free deep memory profiler |
- deep_profile->~DeepHeapProfile(); |
- ProfilerFree(deep_profile); |
- deep_profile = NULL; |
- } |
- |
// free profile |
heap_profile->~HeapProfileTable(); |
ProfilerFree(heap_profile); |