mirror of
https://github.com/nillerusr/source-engine.git
synced 2024-12-27 00:26:50 +00:00
48 lines
1.6 KiB
Plaintext
48 lines
1.6 KiB
Plaintext
|
HEAP PROFILER
|
||
|
|
||
|
1) Fix heap profiling under all STLs
|
||
|
* Find out how to force non-glibc STL libraries to call new() and
|
||
|
delete() for every allocation / deallocation.
|
||
|
* Make heap profiler ignore STL-internal allocations for those
|
||
|
libraries under which we cannot profile accurately, so we only
|
||
|
see object-level leaks.
|
||
|
2) Remove dependency on tcmalloc?
|
||
|
3) Port to non-linux O/Ses (right now code uses /proc for library info)
|
||
|
4) Port to non-x86 architectures (locking code in spinlock is x86-specific)
|
||
|
5) Port to C?
|
||
|
6) Figure out how to get setenv() to work properly before main() in
|
||
|
shared libaries, and get rid of the profile-naming hack once we
|
||
|
do. (See HeapProfiler::Init().)
|
||
|
|
||
|
|
||
|
HEAP CHECKER
|
||
|
|
||
|
1) Remove requirement that the heap-checker must be linked last into
|
||
|
an application (hard! -- it needs its global constructor to run
|
||
|
first)
|
||
|
|
||
|
TCMALLOC
|
||
|
|
||
|
1) Implement mallinfo/mallopt
|
||
|
2) Have tcmalloc work correctly when libpthread is not linked in
|
||
|
(currently working for glibc, could use other libc's too)
|
||
|
3) Return memory to the system when requirements drop
|
||
|
4) Explore coloring allocated objects to avoid cache conflicts
|
||
|
5) Explore biasing reclamation to larger addresses
|
||
|
6) Add contention stats to a synchronization.cc (can do spinlocks,
|
||
|
but threads? -- may have to provide our own thread implementation)
|
||
|
|
||
|
CPU PROFILER
|
||
|
|
||
|
1) Figure out how to get setenv() to work properly before main() in
|
||
|
shared libaries(), and get rid of the profile-naming hack once we
|
||
|
do. (See Profiler::GetUniquePathFromEnv().)
|
||
|
2) Resolve crashing problems on x86_64 (see README)
|
||
|
|
||
|
STACKTRACE
|
||
|
|
||
|
1) Remove dependency on linux/x86
|
||
|
|
||
|
---
|
||
|
11 March 2008
|