Страница 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 мин.

По видимому, либо мы что-то не так делаем, либо изменения не включены в это релиз.
По вашим тестам, какое время должно уходить на загрузку отчетов с подобными размерами?