0
デバッグ情報を標準出力に出力するアプリケーションで、ostringstream
オブジェクトを使用しています。私はアプリケーションが実際にコマンドライン引数(例えば冗長フラグ)に基づいてostringstream
オブジェクトを印刷してクリアするかどうかをトグルします。冗長スイッチがアサートされていない場合、私はまだostringstream
オブジェクトに書き込みますが、決してクリアしません。ostringstreamオブジェクトをクリアする必要がありますか?
私はこれがどれほど悪いのか、オブジェクトをクリアするのにもっと注意を払うべきかどうかを調べようとしていますか?あまりにも多くのメモリを使用するなどの悪影響はありますか?あなたは、ストリーム内の挿入データを保持する際
// example code
ostringstream oss;
while (1){
oss << " still alive " << endl;
if (verbose) { cout << oss.str(); oss.str("") }
}
あなたがそれを決して空にしないと、最終的にあなたのすべての記憶を消費します。 – NathanOliver
あなたはあまりにも多くのメモリを使用しているかどうかを知るはずですか? –
出力ストリームをコマンドラインフラグに応じて一度設定してから、そのストリームに常に無条件に書き込むほうがよい場合があります。 –