0
我在長時間運行的應用程序中使用ostringstream
對象來將調試信息打印到標準輸出。我切換應用程序是否實際打印並根據命令行參數(例如,詳細標誌)清除ostringstream
對象。當詳細開關未被聲明時,我仍然寫入ostringstream
對象,但我從不清除它。是否需要清除ostringstream對象?
我想弄清楚這是多麼糟糕,以及我是否應該更注重清理對象?是否有任何負面影響,如使用太多內存?
// example code
ostringstream oss;
while (1){
oss << " still alive " << endl;
if (verbose) { cout << oss.str(); oss.str("") }
}
好吧,如果你永遠不清空它,最終你會消耗你所有的記憶。 – NathanOliver
我們應該怎麼知道你是否使用了太多的內存? –
根據命令行標誌設置一次輸出流可能是一個更好的解決方案,然後總是無條件地寫入該流。 –