「google-perftools」の版間の差分
提供: FreeBSD入門
(ページの作成:「google-perftools とは、C]/C++アプリケーションのパフォーマンスを改善するためのツールです。特に、テンプレートを使...」) |
|||
行1: | 行1: | ||
− | [[google-perftools]] とは、[[C | + | [[google-perftools]] とは、[[C]]/[[C++]]アプリケーションのパフォーマンスを改善するためのツールです。特に、テンプレートを使用した[[C++]]マルチスレッドアプリケーションアプリケーションで使用します。 |
'''読み方''' | '''読み方''' |
2014年2月23日 (日) 23:38時点における版
google-perftools とは、C/C++アプリケーションのパフォーマンスを改善するためのツールです。特に、テンプレートを使用したC++マルチスレッドアプリケーションアプリケーションで使用します。
読み方
- google-perftools
- ぐーぐる ぱーふ つーるず
目次
概要
google-perftools には、以下のツールがあります。
- tcmalloc(TCMalloc, Thread-Caching Malloc)を提供します。
- ヒープチェッカー
- ヒーププロファイラ
- CPUプロファイラ
TCMalloc
TCMallocは、mallocよりも高速なメモリ割り当てを実現するライブラリです。 簡単にtcmallocを使用して、プログラムを高速化できます。
インストール
FreeBSDにインストールする場合
ports コレクションからインストールする場合
cd /usr/ports/devel/google-perftools sudo make install clean
pkgコマンドでインストールする場合
sudo pkg install google-perftools
portinstallコマンドでインストールする場合
sudo portinstall /usr/ports/devel/google-perftools
ソースコード
tcmalloc.c
#include <google/tcmalloc.h> int main(int argc, char *argv[]) { int *p; int i; for(i = 0; i < 500000; i++) { p = (int *) tc_malloc ( sizeof(int) * 5000); tc_free(p); } return 0; }
コンパイル
cc -ltcmalloc tcmalloc.c -I/usr/local/include -L/usr/local/lib -o tcmalloc
使い方
tcmalloc()とmalloc()の比較
500000回 malloc/free を繰り返した例です。
time ./tcmalloc 0.02 real 0.02 user 0.00 sys time ./malloc 0.52 real 0.25 user 0.26 sys
コンパイルなしでtcmallocによる高速化
$ time LD_PRELOAD=/usr/local/lib/libtcmalloc.so ./malloc real 0m0.031s user 0m0.030s sys 0m0.001s $ time ./malloc real 0m0.514s user 0m0.269s sys 0m0.245s $ time ./malloc real 0m0.509s user 0m0.250s sys 0m0.259s