baidu / sofa-pbrpc

A light-weight RPC implement of google protobuf RPC framework.
Other
2.13k stars 655 forks source link

Add memory profiling #155

Closed zd-double closed 7 years ago

zd-double commented 7 years ago

功能

当前rpc已经支持cpu的profiling#64,现增加内存的profiling,通过对内存使用的采样方便用户分析。

设计细节

  1. 处理流程与cpu profiling保持一致。
  2. 封装 tcmalloc中的MallocExtension::instance()->GetHeapSample(writer);对内存使用进行采样。
  3. 使用弱符号引入TCMallocGetHeapSample,保证在用户联编tcmalloc后方可使用。
  4. 方便用户对两次结果进行diff,增加两次采样的diff
  5. 提供删除按钮,用户可以删除采样数据

之前的pr基于旧的版本,会在log理增加无用的记录,现重新提一次。 辛苦@cyshi @qinzuoyan @bluebore 再给些意见,谢谢!