2016-03-31 14 views
0

ご存知のように、 TBBmallocはメモリブロックをシステムに返しません。 ビジュアルリークディテクタを使用して、プロジェクトのメモリリークを検出しています。 と私はTBBmallocでどのようにメモリリークを検出するのだろうか。 ビジュアルリークディテクタのようにプログラムが終了したときにメモリブロックをリークしたコールスタックを見たいと思います。tbbmallocでメモリリークを検出する方法

検出のためのもう1つの優れたツールはありますか? 、簡単にメモリリークを検出するコードを書く方法は?

答えて

0

TBBmallocが使用されている場合、インテル®Inspectorはメモリリークを検出できます。

TBBmallocはシステムにメモリブロックを返しません。

TBB 4.0以降です。あなたのバージョンがより新鮮であることを願っています。

+0

TBBMallocは、プログラムが終了するまで、まだ8Kバイト以下の小さなサイズのオブジェクトを返しません。 – nolimitk

+0

はい、これは、最近リリースされたオブジェクトがCPUキャッシュで最も暑い可能性が高いため、すぐに再利用される可能性が高いためです。アロケータは常にパフォーマンスとメモリ消費のバランスを取っており、自動決定は100%最適化することはできません。 TBBmallocは洗練されたキャッシングを持っています。 scalable_allocation_command(TBBMALLOC_CLEAN_ALL_BUFFERS、0) 厳密に言えば、空きオブジェクトのスレッドごとのキャッシュは、プログラム終了時ではなくスレッド終了時にクリーニングされます。 –

+0

まず、ご返信ありがとうございます。 tbbmallocに問題があるとは限りませんでした。私はあなたが言ったことを知っていて、私はtbbmallocが大好きです。私はちょうど私がtbbmallocに小さなサイズのオブジェクトを返さないと、tbbmallocで私のアプリケーションのメモリリークを検出したいと思うscalable_free() – nolimitk