Страница 2 из 3
Re: Access to the path 'StimulsoftReportsCache' is denied.
Добавлено: 20 мар 2013, 18:02
HighAley
Здравствуйте.
Мы ещё работаем над оптимизацией загрузки больших отчётов. На данный момент она по умолчанию отключена, но её можно включить с помощью следующего свойства:
Код: Выделить всё
StiOptions.Engine.DocumentLoadingOptimization=true;
Данные изменения будут доступны в релизе 1 апреля.
Спасибо.
Re: Access to the path 'StimulsoftReportsCache' is denied.
Добавлено: 09 апр 2013, 18:51
fantomus
Спасибо!
Стало лучше, но с нашим отчетом полностью проблема не решилась.
На 1Гб оперативной памяти все та же ошибка...
Re: Access to the path 'StimulsoftReportsCache' is denied.
Добавлено: 10 апр 2013, 15:26
HighAley
Здравствуйте.
Если вы открываете сразу сжатый mdz файл, то тут возникает еще одна проблема.
Сжатый отчёт сначала загружается в память, там распаковывается в поток, а уже потом начинает открываться из этого потока как из простого mdc файла.
Для всего этого задействуется достаточно много памяти, в вашем случае 50мб сжатый фай + 380мб распакованный файл = 430мб минимум в памяти занято ещё до начала процесса загрузки.
Как вариант решения этой проблемы, предлагаем на сервере упаковывать большой mdc файл вашими алгоритмами и на клиенте распаковывать его в mdc файл на диске, а уже потом загружать этот mdc файл.
В этом случае с использованием нового алгоритма mdc-файл будет загружаться в память по частям (страницам), что даст огромный выигрыш по памяти.
Спасибо.
Re: Access to the path 'StimulsoftReportsCache' is denied.
Добавлено: 12 апр 2013, 09:25
fantomus
Да, такой вариант подходит.
Придется так и сделать.
Хотя хотелось бы получить такую реализацию внутри метода LoadDocument.
Все необходимое ведь есть.
Флаг оптимизации DocumentLoadingOptimization есть, CachePath для распаковки тоже есть.
Можно расчитывать на такую реализацию в следующих релизах?
Спасибо.
Re: Access to the path 'StimulsoftReportsCache' is denied.
Добавлено: 12 апр 2013, 15:18
HighAley
Здравствйте.
fantomus писал(а):Да, такой вариант подходит.
Придется так и сделать.
Хотя хотелось бы получить такую реализацию внутри метода LoadDocument.
Все необходимое ведь есть.
Флаг оптимизации DocumentLoadingOptimization есть, CachePath для распаковки тоже есть.
Можно расчитывать на такую реализацию в следующих релизах?
Рассчитывать можно.
Мы рассмотрим возможность такой оптимизации.
Сообщим вам о результатах.
Спасибо.
Re: Access to the path 'StimulsoftReportsCache' is denied.
Добавлено: 12 апр 2013, 15:56
fantomus
Спасибо.
Будем ждать.
Уверен, такая возможность только улучшит Ваш продукт!
Re: Access to the path 'StimulsoftReportsCache' is denied.
Добавлено: 23 апр 2013, 10:41
Ajax
Попробовал загрузку большого отчета из файла на диске во вьювер.
Со строкой
StiOptions.Engine.DocumentLoadingOptimization=false;
файл с отчетом в 395 Мб в памяти разворачивается в 1,5 Гб и открывается вьювером в полном размере (со всеми страницами).
Со строкой
StiOptions.Engine.DocumentLoadingOptimization=true;
тот же файл с отчетом разворачивается в памяти в 520 Мб и открывается вьювером в полном размере (со всеми страницами).
Время загрузкт отчетов примерно одинаковое (~1мин).
Конечно второй вариант может решить проблему открытия больших отчетов на машинах с объемом оперативной памяти 1Гб, но все же, возможность ошибки остается. Есть ли какой-либо механизм динамической загрузки отчета во вьювер. Т.е. показать 1-2 страницы отчета, а остальное догружать в фоне?
Спасибо.
P.S. Версия генератора и отчет такие же как и у fantomus.
Re: Access to the path 'StimulsoftReportsCache' is denied.
Добавлено: 23 апр 2013, 18:32
HighAley
Здравствуйте.
Ajax писал(а):Конечно второй вариант может решить проблему открытия больших отчетов на машинах с объемом оперативной памяти 1Гб, но все же, возможность ошибки остается. Есть ли какой-либо механизм динамической загрузки отчета во вьювер. Т.е. показать 1-2 страницы отчета, а остальное догружать в фоне?
В принципе это возможно. Мы постараемся внедрить этот функционал в ближайшее время.
О результатах сообщим.
Спасибо.
Re: Access to the path 'StimulsoftReportsCache' is denied.
Добавлено: 25 апр 2013, 16:39
HighAley
Здравствуйте.
Мы добавили кэширование документа отчёта при его открытии. Теперь проблем с памятью быть не должно.
Также мы доработали загрузку упакованных отчётов. Во можете проверить загрузку используя следующий код:
Код: Выделить всё
StiOptions.Engine.DocumentLoadingOptimization = true;
StiReport report = new StiReport();
report.ReportCacheMode = StiReportCacheMode.Auto;
report.LoadPackedDocument(@"d:\Test.mdz");
Следующий предрелизный билд будет доступен завтра.
Спасибо.
Re: Access to the path 'StimulsoftReportsCache' is denied.
Добавлено: 26 апр 2013, 16:55
Ajax
Обновил у себя версию до (1602).
Провел тесты с одним и тем же отчетом:
1. файл .mdz размером 25Мб
2. файл .mdc размером 400Мб
Результаты открытия отчета:
StiOptions.Engine.DocumentLoadingOptimization = true;
report.ReportCacheMode = StiReportCacheMode.Auto;
1. занял памяти 1 067 Мб
2. занял памяти 570 Мб
Во всех трех режимах StiReportCacheMode.Auto/Off/On результат одинаков.
Время формирования всех отчетов с любыми настройками около 1 мин.
По видимому, либо мы что-то не так делаем, либо изменения не включены в это релиз.
По вашим тестам, какое время должно уходить на загрузку отчетов с подобными размерами?