2015-04-16 4 views
0

Я пытаюсь создать большой отчет на основе книги с тремя поддерживающими листами в 100, 12000 и 12000 строк и окончательным выходным листом основанная на формуле, которая составляет около 120 объектов на 100 строк. Я создаю диапазон шаблонов и копирую и вставляю его, заменяя ячейку идентификатора объекта после вставки каждого нового диапазона. Он работает нормально, но я заметил, что использование памяти в процессе IIS Express составляет около 500 мб, а также использует 100% процессор.Spreadsheet Gear - Создание большого отчета с помощью копирования и вставки, похоже, использует много памяти и процессора

Существуют ли какие-либо рекомендации по созданию книг таким образом?

ответ

0

По крайней мере, с точки зрения использования памяти, это помогло бы иметь некоторое сравнение, возможно, против Excel, в том, сколько памяти используется, чтобы просто открыть результирующую книгу. Например, если вы должны были открыть окончательный отчет как в Excel, так и в приложении SpreadsheetGear 2012 для Windows (доступно в папке SpreadsheetGear в меню «Пуск»), что измеряет Диспетчер задач для каждого из этих приложений с точки зрения памяти потребление? Это может дать некоторое представление о том, является ли использование памяти, которое вы видите в процессе создания отчета, необычайно высоким (есть ли дополнительные дополнительные накладные расходы для вашей программы?) Или просто типично, учитывая размер создаваемой вами книги ,

С точки зрения использования ЦП, это немного сложнее определить и, безусловно, зависит от вашего оборудования, а также от деталей реализации в вашем коде. Запуск VS Profiler против вашей программы, безусловно, было бы интересно изучить, если у вас есть этот инструмент для вас. Вообще говоря, время CPU может быть разбито на несколько широких категорий - циклы процессоров, используемые для «построения» вашей книги и циклов процессора для «вычисления». Было бы полезно лучше определить, какая из них доминирует над ЦП. Одним из способов сделать это может быть, если это возможно, гарантировать, что вычисления не будут выполняться до тех пор, пока вы не закончите фактически создание рабочей книги. На самом деле, избегая любых ненужных вычислений, возможно, ускорить процесс ... это зависит от книги. Вы можете избежать вычислений, установив IWorkbookSet. Calculation до Manual и не вызывая никаких методов «Рассчитать» IWorkbook (Calculate/CalculateFull/CalculateFullRebuild), пока вы не освоитесь с этим процессом. Если у вас нет доступа к профилировщику, возможно, установите некоторые таймеры, Console.WriteLines и проверите диспетчер задач, чтобы узнать, как ваш процессор колеблется в разных частях вашей программы. С какой-либо удачей вы могли бы лучше изолировать, какая часть процедуры занимает больше всего времени.