我一直在寻找瓶颈性能问题,我惊讶地发现:
foreach (ExcelWorksheet ws in wb.Worksheets)
}
有将近2/3的时间在吃东西。
我将以上内容与以下内容进行了比较:
foreach (ExcelWorksheet ws in wb.Worksheets)
MyMethod(ws);
}
没有MyMethod
的耗时:73418495551秒
而MyMethod
的消耗时间为:996992858096毫秒。
有什么方法可以改进吗?我只想在有帮助的情况下寻找可见的床单。
通往上述代码块的代码:
Pack = new ExcelPackage(file);
ExcelWorkbook wb = pack.Workbook;
Stopwatch testsw = new Stopwatch();
testsw.Start();
foreach (ExcelWorksheet ws in wb.Worksheets)
MyMethod(ws);
}
testsw.Stop();
Console.WriteLine("testsw " + testsw.ElapsedMilliseconds);
对我来说,
var fi = new System.IO.FileInfo(sourceFile);
using (var p = new ExcelPackage(fi))
{
var sw = new System.Diagnostics.Stopwatch();
sw.Start();
var wslist = p.Workbook.Worksheets;
foreach ( var ws in wslist)
{
Console.WriteLine(ws.Name);
}
sw.Stop();
Console.WriteLine("sw " + sw.ElapsedMilliseconds);
}
耗时209毫秒