XML DOM ツリー内のノードに関する情報を格納するために使用するオブジェクトでの "new" の呼び出しが異常に多いため、私が調査するように依頼された C++ の一部はパフォーマンスが低下しています。AQTime と Very Sleepy プロファイラーの両方を使用して、new が原因であることを確認しました。
これらのオブジェクトにはすべて、他のいくつかのオブジェクト型とオブジェクトへのポインターがメンバーとして含まれているため、ノード オブジェクトの新しい各オブジェクトは、すべてのメンバー オブジェクトのコンストラクターも呼び出します。これが、各割り当てに非常に時間がかかる理由だと思います。また、GlobalAlloc のようなものを呼び出して大量のメモリを要求することはできません。後で初期化する必要があります。
私はこのパフォーマンスの低下を軽減するために事前割り当て技術を使用して調査してきましたが、私が見たものには、私が必要とするものには適していない初期化されていないメモリの大きなチャンクを要求することが含まれますが、他のものは最終的にとにかく new を呼び出し、私たちが観察するかもしれないパフォーマンスの向上なので、私が知らない別のオプションがあるかどうか疑問に思っていますか? 初期化されていないメモリをすばやく取得するか、初期化されたメモリをゆっくりと取得しているので、私が求めていることはできないと感じています。私が間違っていることを証明してください:)
ありがとう