繁体   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