欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Profile工具-gperftools(一):CPU feature

程序员文章站 2022-07-02 09:32:20
...

简介

  • gperftools 原名 Google Performance Tools,是一套可以做 profile 的工具,由 google 提供。
  • 目前看来在 Linux 上特别的好使,Windows 基本不能用(官网说 Windows 正在开发,不知道会不会有下文)
  • CPU profile 只是这个工具其中一个 feature,我们就用这个 feature。
  • 其他 feature 还有 tcmalloc:一个比malloc更快的内存管理算法;还有 heap profiler,heap checker。
  • 官网:https://github.com/gperftools/gperftools
  • 参考:http://www.cnblogs.com/lenolix/archive/2010/12/13/1904868.html

一. 安装

git clone https://github.com/gperftools/gperftools.git
cd gperftools
./autogen.sh
./configure
make
sudo make install

目录结构:

tree .
.
├── bin
│   └── pprof
├── include
│   ├── google
│   │   ├── heap-checker.h
│   │   ├── heap-profiler.h
│   │   ├── malloc_extension_c.h
│   │   ├── malloc_extension.h
│   │   ├── malloc_hook_c.h
│   │   ├── malloc_hook.h
│   │   ├── profiler.h
│   │   ├── stacktrace.h
│   │   └── tcmalloc.h
│   └── gperftools
│       ├── heap-checker.h
│       ├── heap-profiler.h
│       ├── malloc_extension_c.h
│       ├── malloc_extension.h
│       ├── malloc_hook_c.h
│       ├── malloc_hook.h
│       ├── nallocx.h
│       ├── profiler.h
│       ├── stacktrace.h
│       └── tcmalloc.h
├── lib
│   ├── libprofiler.a
│   ├── libprofiler.la
│   ├── libprofiler.so -> libprofiler.so.0.4.18
│   ├── libprofiler.so.0 -> libprofiler.so.0.4.18
│   ├── libprofiler.so.0.4.18
│   ├── libtcmalloc.a
│   ├── libtcmalloc_and_profiler.a
│   ├── libtcmalloc_and_profiler.la
│   ├── libtcmalloc_and_profiler.so -> libtcmalloc_and_profiler.so.4.5.3
│   ├── libtcmalloc_and_profiler.so.4 -> libtcmalloc_and_profiler.so.4.5.3
│   ├── libtcmalloc_and_profiler.so.4.5.3
│   ├── libtcmalloc_debug.a
│   ├── libtcmalloc_debug.la
│   ├── libtcmalloc_debug.so -> libtcmalloc_debug.so.4.5.3
│   ├── libtcmalloc_debug.so.4 -> libtcmalloc_debug.so.4.5.3
│   ├── libtcmalloc_debug.so.4.5.3
│   ├── libtcmalloc.la
│   ├── libtcmalloc_minimal.a
│   ├── libtcmalloc_minimal_debug.a
│   ├── libtcmalloc_minimal_debug.la
│   ├── libtcmalloc_minimal_debug.so -> libtcmalloc_minimal_debug.so.4.5.3
│   ├── libtcmalloc_minimal_debug.so.4 -> libtcmalloc_minimal_debug.so.4.5.3
│   ├── libtcmalloc_minimal_debug.so.4.5.3
│   ├── libtcmalloc_minimal.la
│   ├── libtcmalloc_minimal.so -> libtcmalloc_minimal.so.4.5.3
│   ├── libtcmalloc_minimal.so.4 -> libtcmalloc_minimal.so.4.5.3
│   ├── libtcmalloc_minimal.so.4.5.3
│   ├── libtcmalloc.so -> libtcmalloc.so.4.5.3
│   ├── libtcmalloc.so.4 -> libtcmalloc.so.4.5.3
│   ├── libtcmalloc.so.4.5.3
│   └── pkgconfig
│       ├── libprofiler.pc
│       ├── libtcmalloc_debug.pc
│       ├── libtcmalloc_minimal_debug.pc
│       ├── libtcmalloc_minimal.pc
│       └── libtcmalloc.pc

二. 使用

相关标签: 工具集