mirror of
				https://github.com/ossrs/srs.git
				synced 2025-03-09 15:49:59 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			47 lines
		
	
	
	
		
			1.6 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
			
		
		
	
	
			47 lines
		
	
	
	
		
			1.6 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
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
 |