blob: 550f7e09b9d2ad77a4de76e7a4acfa881f4c21f2 [file] [log] [blame]
csilvers51b48752007-03-22 03:00:33 +00001HEAP PROFILER
2
csilvers91fad382007-03-22 03:28:56 +000031) Fix heap profiling under all STLs
csilvers51b48752007-03-22 03:00:33 +00004 * Find out how to force non-glibc STL libraries to call new() and
5 delete() for every allocation / deallocation.
6 * Make heap profiler ignore STL-internal allocations for those
7 libraries under which we cannot profile accurately, so we only
8 see object-level leaks.
csilvers91fad382007-03-22 03:28:56 +000092) Remove dependency on tcmalloc?
csilvers51b48752007-03-22 03:00:33 +0000103) Port to non-linux O/Ses (right now code uses /proc for library info)
csilvers74ad5d52007-04-16 20:49:32 +0000114) Port to non-x86 architectures (locking code in spinlock is x86-specific)
csilvers51b48752007-03-22 03:00:33 +0000125) Port to C?
csilvers91fad382007-03-22 03:28:56 +0000136) Figure out how to get setenv() to work properly before main() in
14 shared libaries, and get rid of the profile-naming hack once we
15 do. (See HeapProfiler::Init().)
16
csilvers51b48752007-03-22 03:00:33 +000017
18HEAP CHECKER
19
csilvers74ad5d52007-04-16 20:49:32 +0000201) Remove requirement that the heap-checker must be linked last into
csilvers51b48752007-03-22 03:00:33 +000021 an application (hard! -- it needs its global constructor to run
22 first)
23
24TCMALLOC
25
261) Implement mallinfo/mallopt
272) Have tcmalloc work correctly when libpthread is not linked in
csilvers91fad382007-03-22 03:28:56 +000028 (currently working for glibc, could use other libc's too)
csilvers51b48752007-03-22 03:00:33 +0000293) Return memory to the system when requirements drop
304) Explore coloring allocated objects to avoid cache conflicts
315) Explore biasing reclamation to larger addresses
csilvers74ad5d52007-04-16 20:49:32 +0000326) Add contention stats to a synchronization.cc (can do spinlocks,
33 but threads? -- may have to provide our own thread implementation)
csilvers51b48752007-03-22 03:00:33 +000034
csilvers91fad382007-03-22 03:28:56 +000035CPU PROFILER
36
371) Figure out how to get setenv() to work properly before main() in
38 shared libaries(), and get rid of the profile-naming hack once we
csilvers74ad5d52007-04-16 20:49:32 +000039 do. (See Profiler::GetUniquePathFromEnv().)
402) Resolve crashing problems on x86_64 (see README)
csilvers91fad382007-03-22 03:28:56 +000041
csilvers51b48752007-03-22 03:00:33 +000042STACKTRACE
43
csilvers97fdd4a2008-03-19 23:35:27 +0000441) Remove dependency on linux/x86
csilvers51b48752007-03-22 03:00:33 +000045
csilvers91fad382007-03-22 03:28:56 +000046---
csilvers97fdd4a2008-03-19 23:35:27 +00004711 March 2008