dataTableから新しいワークシートを追加する必要があります。私はClosedXMLを使用して、このタスクのために:クローズドXML。メモリリーク中にWorkbook.Save()
workbook.Worksheets.Add(dataTable);
workbook.Save();
workbook = new XLWorkbook(filePath); //reload file to avoid exception at next saving
私のプロセスは、128 MBのメモリを使用しますがWorkbook.Save()
後、この数は382メガビットに発祥しています。私は、次のワークシートのメモリ使用量を464Mbから619Mbに増やした後に追加しました。しかし、実際のファイルは1.6 Mbでした。
この理由は何ですか?
アプリケーションを 'Debug'コンフィグレーションで実行すると(通常は最適化がオフであることを意味する)、期待されたときに破棄されたオブジェクトが実際に破棄されるという保証はありません。これらのオブジェクトは通常、デバッガで表示できるように保持されています。 'Release'設定に切り替えて、破棄されたオブジェクトが期待どおりにガベージコレクションされるようにします。 –