Access to the path 'StimulsoftReportsCache' is denied.

Обсуждение Stimulsoft Reports.NET
HighAley
Сообщения: 1998
Зарегистрирован: 08 июн 2011, 11:36
Откуда: Stimulsoft Office

Re: Access to the path 'StimulsoftReportsCache' is denied.

Сообщение HighAley »

Здравствуйте.

Мы ещё работаем над оптимизацией загрузки больших отчётов. На данный момент она по умолчанию отключена, но её можно включить с помощью следующего свойства:

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

StiOptions.Engine.DocumentLoadingOptimization=true;
Данные изменения будут доступны в релизе 1 апреля.

Спасибо.
fantomus
Сообщения: 215
Зарегистрирован: 22 апр 2009, 06:41
Откуда: Kyiv, Ukraine

Re: Access to the path 'StimulsoftReportsCache' is denied.

Сообщение fantomus »

Спасибо!
Стало лучше, но с нашим отчетом полностью проблема не решилась.
На 1Гб оперативной памяти все та же ошибка...
HighAley
Сообщения: 1998
Зарегистрирован: 08 июн 2011, 11:36
Откуда: Stimulsoft Office

Re: Access to the path 'StimulsoftReportsCache' is denied.

Сообщение HighAley »

Здравствуйте.

Если вы открываете сразу сжатый mdz файл, то тут возникает еще одна проблема.
Сжатый отчёт сначала загружается в память, там распаковывается в поток, а уже потом начинает открываться из этого потока как из простого mdc файла.
Для всего этого задействуется достаточно много памяти, в вашем случае 50мб сжатый фай + 380мб распакованный файл = 430мб минимум в памяти занято ещё до начала процесса загрузки.

Как вариант решения этой проблемы, предлагаем на сервере упаковывать большой mdc файл вашими алгоритмами и на клиенте распаковывать его в mdc файл на диске, а уже потом загружать этот mdc файл.
В этом случае с использованием нового алгоритма mdc-файл будет загружаться в память по частям (страницам), что даст огромный выигрыш по памяти.

Спасибо.
fantomus
Сообщения: 215
Зарегистрирован: 22 апр 2009, 06:41
Откуда: Kyiv, Ukraine

Re: Access to the path 'StimulsoftReportsCache' is denied.

Сообщение fantomus »

Да, такой вариант подходит.
Придется так и сделать.
Хотя хотелось бы получить такую реализацию внутри метода LoadDocument.
Все необходимое ведь есть.
Флаг оптимизации DocumentLoadingOptimization есть, CachePath для распаковки тоже есть.
Можно расчитывать на такую реализацию в следующих релизах?

Спасибо.
HighAley
Сообщения: 1998
Зарегистрирован: 08 июн 2011, 11:36
Откуда: Stimulsoft Office

Re: Access to the path 'StimulsoftReportsCache' is denied.

Сообщение HighAley »

Здравствйте.
fantomus писал(а):Да, такой вариант подходит.
Придется так и сделать.
Хотя хотелось бы получить такую реализацию внутри метода LoadDocument.
Все необходимое ведь есть.
Флаг оптимизации DocumentLoadingOptimization есть, CachePath для распаковки тоже есть.
Можно расчитывать на такую реализацию в следующих релизах?
Рассчитывать можно.
Мы рассмотрим возможность такой оптимизации.
Сообщим вам о результатах.

Спасибо.
fantomus
Сообщения: 215
Зарегистрирован: 22 апр 2009, 06:41
Откуда: Kyiv, Ukraine

Re: Access to the path 'StimulsoftReportsCache' is denied.

Сообщение fantomus »

Спасибо.
Будем ждать.
Уверен, такая возможность только улучшит Ваш продукт!
Ajax
Сообщения: 18
Зарегистрирован: 05 дек 2012, 18:52

Re: Access to the path 'StimulsoftReportsCache' is denied.

Сообщение Ajax »

Попробовал загрузку большого отчета из файла на диске во вьювер.
Со строкой
StiOptions.Engine.DocumentLoadingOptimization=false;
файл с отчетом в 395 Мб в памяти разворачивается в 1,5 Гб и открывается вьювером в полном размере (со всеми страницами).
Со строкой
StiOptions.Engine.DocumentLoadingOptimization=true;
тот же файл с отчетом разворачивается в памяти в 520 Мб и открывается вьювером в полном размере (со всеми страницами).

Время загрузкт отчетов примерно одинаковое (~1мин).

Конечно второй вариант может решить проблему открытия больших отчетов на машинах с объемом оперативной памяти 1Гб, но все же, возможность ошибки остается. Есть ли какой-либо механизм динамической загрузки отчета во вьювер. Т.е. показать 1-2 страницы отчета, а остальное догружать в фоне?

Спасибо.

P.S. Версия генератора и отчет такие же как и у fantomus.
HighAley
Сообщения: 1998
Зарегистрирован: 08 июн 2011, 11:36
Откуда: Stimulsoft Office

Re: Access to the path 'StimulsoftReportsCache' is denied.

Сообщение HighAley »

Здравствуйте.
Ajax писал(а):Конечно второй вариант может решить проблему открытия больших отчетов на машинах с объемом оперативной памяти 1Гб, но все же, возможность ошибки остается. Есть ли какой-либо механизм динамической загрузки отчета во вьювер. Т.е. показать 1-2 страницы отчета, а остальное догружать в фоне?
В принципе это возможно. Мы постараемся внедрить этот функционал в ближайшее время.
О результатах сообщим.

Спасибо.
HighAley
Сообщения: 1998
Зарегистрирован: 08 июн 2011, 11:36
Откуда: Stimulsoft Office

Re: Access to the path 'StimulsoftReportsCache' is denied.

Сообщение HighAley »

Здравствуйте.

Мы добавили кэширование документа отчёта при его открытии. Теперь проблем с памятью быть не должно.
Также мы доработали загрузку упакованных отчётов. Во можете проверить загрузку используя следующий код:

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

            StiOptions.Engine.DocumentLoadingOptimization = true;

            StiReport report = new StiReport();
            report.ReportCacheMode = StiReportCacheMode.Auto;
            report.LoadPackedDocument(@"d:\Test.mdz");
Следующий предрелизный билд будет доступен завтра.

Спасибо.
Ajax
Сообщения: 18
Зарегистрирован: 05 дек 2012, 18:52

Re: Access to the path 'StimulsoftReportsCache' is denied.

Сообщение 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 мин.

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