Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Общие вопросы по .NET и C# > тормоза при создании ReportDocument


Автор: Groff 14.4.2008, 18:15
Имеется приложение для генерации отчетов в нужном в формате. Для этого используется Crystal Reports .NET
Код примерно следующий:
Код

           ReportDocument rpt = new ReportDocument();
           rpt.Load("my_report.rpt");

           //... установка параметров
    
            rpt.ExportToDisk(ExportFormatType.PortableDocFormat, filePath);
            rpt.Close();

Генерация даже простого отчета жутко тормозит. Прогнал через дебагер - наибольшие тормоза наблюдаются в строке:
Код
           ReportDocument rpt = new ReportDocument();

Я так понимаю это происходит из-за того, что ReportDocument обащается к COM объектам. Вопрос в том, как можно ускорить создание объекта ReportDocument. Я думал сделать что-то вроде пула готовых объектов ReportDocument, но не знаю толком как это реализовать. Какие будут предложения?

Автор: mr.DUDA 14.4.2008, 18:50
Неплохо бы посмотреть, на чём именно тормозит в конструкторе ReportDocument (прогнать любым профайлером), а потом решать насчёт пула.

Автор: Groff 14.4.2008, 19:34
Кстати обнаружил интересную вещь. Генерация отчета у меня происходит при клике на кнопку.  И тормоза наблюдаются только при первом клике. Второй раз отчет генерируется быстро.
Цитата(mr.DUDA @  14.4.2008,  18:50 Найти цитируемый пост)
Неплохо бы посмотреть, на чём именно тормозит в конструкторе ReportDocument (прогнать любым профайлером)

в конструкторе тормозит setLicenseKeyFromRegistry smile

Добавлено через 43 секунды
скрин профайлера:

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)