Страница 1 из 1

Долгое сохранение отчета в PDF

Добавлено: 27 янв 2014, 11:19
walle93
Здравствуйте!
В DataSet в цикле записываются данные. При достижении 50 строк записей отчет сохраняется. Таблица в DataSet очищается, затем заполняется очередной порцией в 50 штук и т.д. Цикл может достигать 100К записей из БД.
Вначале (по времени точно не скажу) данные сохраняются "нормально", а НО затем постепенно время сохранения отчета возрастает до неприличия, т.е. если на первых порах могло сохраниться 10-15 файлов, то затем стабильно 2-4.
С чем может быть это связано и как решить эту задачу??
Пример сохранения:

Код: Выделить всё

Отмена.RegReportDataSources();
                    Отмена.Compile();
                    Отмена.Render(false);
                    Stimulsoft.Report.Export.StiPdfExportSettings settings = new Stimulsoft.Report.Export.StiPdfExportSettings();
                    settings.Compressed = true;
                    Отмена.ExportDocument(Stimulsoft.Report.StiExportFormat.Pdf, folder_name + "\\" + filename + ".pdf", settings);
Всем заранее спасибо!

Re: Долгое сохранение отчета в PDF

Добавлено: 27 янв 2014, 16:35
HighAley
Здравствуйте.

Для начала попробуйте вынести метод Compile() за пределы цикла.
Не могли бы вы сказать в выполнении какой именно строки кода проявляются такие большие задержки.

Спасибо.

Re: Долгое сохранение отчета в PDF

Добавлено: 27 янв 2014, 16:38
walle93
Именно при ExportDocument.

Спасибо!

Re: Долгое сохранение отчета в PDF

Добавлено: 28 янв 2014, 15:47
HighAley
Здравствуйте.

Уточните, пожалуйста, вы пробовали выносить метод Compile() за пределы цикла, так как многократное его выполнение может вызвать данную проблему?
Изменилось ли время работы изменённого кода?

Спасибо.

Re: Долгое сохранение отчета в PDF

Добавлено: 28 янв 2014, 22:38
walle93
Здравствуйте!
Попробовал вынести Compile() за основной цикл. Поначалу подумал, что все хорошо и сравнение показателей за 6 часов выгрузки давали надежду - старым способом 806 файлов выгружается за 6 часов, а новым 979. Но теперь, по прошествии 13 часов скорость выравнялась и составляет 2 файла в минуту, как и по старому варианту. И это при всем при том, что на старте обоими способами может выгружаться 18-20 файлов в минуту. В общем проблема осталась.
Может еще какими советами поможете?

Спасибо, за проявленное внимание!

Re: Долгое сохранение отчета в PDF

Добавлено: 29 янв 2014, 10:29
HighAley
Здравствуйте.

Сколько оперативной памяти занимает данный процесс?
Как он изменяется с течением времени?

Попробуйте поставить данное статическое свойство:

Код: Выделить всё

StiOptions.Export.Pdf.AllowFontsCache = true;
Пришлите нам, пожалуйста, пример проекта, который бы позволил нам воспроизвести вашу проблему.

Спасибо.

Re: Долгое сохранение отчета в PDF

Добавлено: 29 янв 2014, 14:04
walle93
Оперативная память со временем растет (то растет, то уменьшается, но в тенденции становится больше), имею ввиду занимаемая оперативная память. Проект будет сложно прислать, так как информация конфиденциальна(вы уж простите), а на изменение и удаление уйдет больше времени и потеряется смысл. Еще пришла в голову мысль - не может ли такое быть из-за того что в отчете используются html тэги??? То есть на входе в DataSet в полях некоторых есть тэги, а в отчете в выводимых полях включена их обработка. Но опять таки почему замедляется со временем а не сразу...

Re: Долгое сохранение отчета в PDF

Добавлено: 30 янв 2014, 15:04
HighAley
Здравствуйте.

К сожалению мы не можем ответить вам не имея возможности воспроизвести проблему.
Пришлите, пожалуйста, проект с шаблоном отчёта и ЛЮБЫМИ данными, которые бы позволили бы воспроизвести проблему. Вы также можете изменить отчёт, чтобы не надо были данные для его построения. Возможно получится воспроизвести ситуацию и без данных.

Спасибо.