0

いくつかのメモリ テストに Oracle Solaris Studio を使用しています。私はちょうどそれをインストールし、伝統的な「Hello World」プログラムを書いて、すべてが正しく稼働していることを確認しました.

ただし、メモリ リーク ツールは、演算子 new が 40 バイトをリークしていると報告しています...

これは、MFC (Microsoft Foundation Classes) を使用した古いバージョンの Visual Studio でよく見られる問題であると読みましたが、これは Oracle 製品で発生しているため、非常に混乱しています... そうですか?

私が理解しているように、それは無視できます。しかし、何かを印刷するだけで毎回ポップアップするのを見るのは面倒です。

それについて何かできることはありますか?

ありがとう。

コードは次のとおりです。

#include <iostream>

int main(void)
{
 std::cout<<"Hello World\n";

 return 0;
}
4

3 に答える 3

2

Sun Studio 12 でコンパイルし、TotalView で調べました。

実際には、一致する割り当て解除なしで 40 バイトのヒープ__rwstd::facet_imp* __rwstd::facet_maker<std::codecvt<char,char,__mbstate_t>>::maker_func( int, const char*, unsigned )割り当て__rwstd::facet_imp* std::locale::__make_explicit( const std::locale::id& ,bool, int, __rwstd::facet_imp*(*)(int,const char*,unsigned)) constfilebuf::overflowありfilebuf::syncますoperator<<

ただし、roguewave ベースの libCstd に対してビルドされたものとのバイナリ互換性が必要でない限り、 Oracle は でコンパイルすることを推奨しています。-library=stlport4このオプションでコンパイルすると、ヒープ割り当てはまったく行われませんmain()

于 2012-05-04T18:52:04.490 に答える
0

Solaris Studio メモリ ツールを試してみたところ、ツールよりも自分のコードをよく知っていると思っていたにもかかわらず、非常に役に立ち、正確であることがわかりました。おそらく、Solaris Studio Memory Tool をすぐに中傷した人々は、提案された代替手段よりもどれだけ優れているかを試してみることをいとわないでしょう。

于 2012-05-07T16:13:23.573 に答える
0

IBM のPurifyはメモリ リークを検出できます。試してみてください。

于 2012-05-04T19:29:38.093 に答える