1

apt-get install libtcmalloc-minimal4 を使用して Ubuntu 14.0 に tcmalloc をインストールしました

次の手順を実行しました。

ln -s libtcmalloc_minimal.so.4.1.2 libtcmalloc_minimal.so
は実行可能ファイルを -ltcmalloc_minimal にリンクしました

コードを実行した後、パフォーマンスの違いは見られません。

tcmalloc が使用されているかどうかを確認するために HEAPCHECK を実行しようとしましたが、HEAPCHECK に関連する警告は見つかりませんでした。

私のプログラムには、malloc 呼び出しと openMP が含まれています。他に何かしなければならないことはありますか?プログラムで tcmalloc が使用されていることを確認するにはどうすればよいですか?

4

3 に答える 3

2

次の手順を ln -s libtcmalloc_minimal.so.4.1.2 libtcmalloc_minimal.so 実行しました:実行可能ファイルをリンクしました-ltcmalloc_minimal

一般に、そのようなライブラリをシンボリックリンクする必要はありません。それをしなければならなかったという事実は、正しい(開発)パッケージをインストールしなかったことを示しています。

ldd「動的実行可能ファイルではありません」と表示されます。

その場合、実行可能ファイルはとリンクされていないことが保証さlibtcmalloc_minimal.soれます。

を使用してライブラリをリンクしました-L <path to .so>

これは、実行可能ファイルを特定のライブラリにリンクするのではなく<path to .so>、リンカーにライブラリのディレクトリを探すように指示するだけです。libtcmalloc_minimal実際にリンカーに, with -ltcmalloc_minimalflag.を探すように依頼する必要があります。

于 2015-10-14T03:11:39.720 に答える
1

私のプログラムで tcmalloc が使用されているかどうかを確認するために、google-perftool グループから次の応答を受け取りました。

環境変数 MALLOCSTATS を 1 または 2 に設定すると、最後にいくつかの tcmalloc 統計が出力されます。

例 MALLOCSTATS=2 ./myprogram

于 2015-10-13T05:26:13.513 に答える
1

GDB などの malloc() にブレークポイントを設定できます。

(gdb) break malloc
Breakpoint 2 at 0x7ffff72b2130 (3 locations)

TC-Malloc が使用されている場合、動的割り当てが行われると次のように表示されます。

Breakpoint 2, 0x00007ffff7ba8c20 in tc_malloc () from  /lib64/libtcmalloc_minimal.so.4
(gdb) bt
#0  0x00007ffff7ba8c20 in tc_malloc () from /lib64/libtcmalloc_minimal.so.4
#1  0x00007ffff729e45d in __fopen_internal () from /lib64/libc.so.6
于 2016-12-28T13:33:49.883 に答える