-ltcmalloc을 사용하여 컴파일 된 프로그램에서 스레드 당 메모리 사용량을 볼 수 있다면 제목에 관심이 있습니다. 일반 malloc 메모리가있는 AFAIK는 스레드가 아닌 프로세스에 연결되어 있지만 tcmalloc에 대해서는 확신 할 수 없습니다.Google의 tcmalloc을 사용하여 스레드 메모리 사용량을 얻을 수 있습니까?
0
A
답변
2
스레드 별 메모리 사용과 같은 것은 없습니다. 메모리는 프로세스 리소스입니다.
2
TcMalloc에는 스레드마다 메모리 캐시가 있습니다. 하지만 이들은 공유 힙 (혼잡을 줄이기 위해)에 대한 프록시 일뿐입니다. tcmalloc의 모든 메모리는 단일 공유 풀에서 가져옵니다.
살아있는 (할당 된) 메모리는 하나의 스레드에서 다른 스레드로 자유롭게 전달 될 수 있으므로 이므로 어떤 스레드가이를 사용하는지 쉽게 알 수 없습니다.
사용 된 메모리를 할당 한 스레드를 모니터링 할 수 있지만 완전히 분리 된 메모리 풀 (매우 탄력적이지 않음) 또는 할당 당 메모리 오버 헤드가 필요합니다. 이들 중 어느 것도 tcmalloc에 없습니다 ...