[英]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.