簡體   English   中英

Spreadsheetlight Ram的用法

[英]Spreadsheetlight ram usage

我對SpreadSheetLight有問題。 當我使用SaveAs方法時,它將使用約1.2GB的RAM。 我寫了大約6k條記錄,輸出文件只有6MB。 有人有這個問題嗎?

SaveAs代碼在這里:

using (var stream = new MemoryStream(Templates.BudgetTemplate))
{
    using (var doc = new SLDocument(stream))
    {
        doc.SelectWorksheet("Sheet");

        var i = 2; //first line is header
        var list = new List<object>(); //list initialization from DB Collection

        foreach (var item in list)
        {
            //doc.SetCellValue stuff, from A to AN columns

            i++;
        }

        doc.SaveAs(_path);
    }
}

這可能與文件大小緩沖區有關。 就像運行Excel會占用數MB的RAM,以便您可以寫入20 KB的文件一樣,SpreadsheetLight也會執行類似的操作。

我們談論的是Open XML電子表格,因此從技術上講,整個XML文件集都保存在內存中(節省時間)。 例如,在壓縮文件時,您將整個文本文件保存在內存中,然后將其壓縮為一個較小的文件。 這就是為什么SpreadsheetLight(和其他庫)占用比最終生成的文件更多的RAM的原因。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM