Я искал проблему производительности bottle шеи, и я был удивлен, обнаружив, что:
foreach (ExcelWorksheet ws in wb.Worksheets)
}
Ел почти в 2/3 времени.
Я сравнил вышеупомянутое с этим:
foreach (ExcelWorksheet ws in wb.Worksheets)
MyMethod(ws);
}
Один без MyMethod
занял: 7341, 5495, 5551 ElapsedMilliseconds
В то время как один с MyMethod
занял : 9969, 9285, 8096 Прошедшие миллисекунды.
Есть ли способ улучшить это? Я ищу только те листы, которые видны, если это поможет.
Код, ведущий к вышеуказанному блоку кода:
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);