Out Of Memory

отредактировано 02:41 Раздел: FastReport VCL
Столкнулись с проблемой Out of memory
Отчет при ширине страницы 96 см.
и количестве страниц около 1000 отъедает ~2 gb. памяти
и падает с ошибкой Out of memory

Причем, если выпустить отчет с примерным количеством страниц 200, наблюдается скачек памяти до 400 Мб.
Ближе к концу построения память освобождается до 150 мб.
Если сохранить такой отчет (200 страниц) в fp3 - он весит всего ~4мб.

Можно что либо соптимизировать, чтобы можно было строить большие отчеты ?


Строится такой отчет довольно долго на хорошей машине (i5 4-ядра, оперативы 8gb)

Комментарии

  • Stalker4Stalker4 123
    отредактировано 02:41
    Stiffman написал: »
    Столкнулись с проблемой Out of memory
    Отчет при ширине страницы 96 см.
    и количестве страниц около 1000 отъедает ~2 gb. памяти
    и падает с ошибкой Out of memory

    Причем, если выпустить отчет с примерным количеством страниц 200, наблюдается скачек памяти до 400 Мб.
    Ближе к концу построения память освобождается до 150 мб.
    Если сохранить такой отчет (200 страниц) в fp3 - он весит всего ~4мб.

    Можно что либо соптимизировать, чтобы можно было строить большие отчеты ?
    Строится такой отчет довольно долго на хорошей машине (i5 4-ядра, оперативы 8gb)
    Попробуй посмотреть свойства frxReport.EngineOptions.MaxMemSize и frxReport.EngineOptions.UseFileCache
  • отредактировано 02:41
    Stalker4 написал: »
    Попробуй посмотреть свойства frxReport.EngineOptions.MaxMemSize и frxReport.EngineOptions.UseFileCache

    Не помогает:
    frxReport.EngineOptions.MaxMemSize := 256;
    frxReport.EngineOptions.UseFileCache:= true;

    Может еще какое свойство ?
  • отредактировано 02:41
    Еще такое наблюдение. Строится отчет, пишет отчет готов, если не сдвигать страницу - памяти отъедает ~80 мб.
    Как только пытаешься пролистать страницу, сразу увеличивается до 1,4 Гб.
  • отредактировано 02:41
    Нашел закономерность:

    Память раздувается, если сделать в свойствах страницы "Бесконечную высоту" и раскрасить все ячейки (разными цветами).
    Если убрать раскраску, памяти отъедается в десятки раз меньше.
    Если убрать свойство "Бесконечная высота", то хоть раскрашенный, хоть нет - с памятью все хорошо.

    P.S.
    Для чего это все нужно:
    В отчете физически 2 страницы. Первая страница должна быть выгружена в excel на одной странице, вторая на второй.
    В новом экспорте (Microsoft Excel 2007 XML), если не ставить свойство страницы "Бесконечная высота" и поставить галочку "Использовать стр. отчета",
    то получается целая куча страниц (вкладок).

    В старом экспорте (Документ Excel (XML)) выгружалось все корректно без свойства страницы "Бесконечная высота". (на двух страницах)

Оставить комментарий

Многофункциональный текстовый редактор. Чтобы отредактировать стиль параграфа, нажмите TAB, чтобы перейти к меню абзаца. Там вы можете выбрать стиль. По умолчанию не выбран ни один стиль. Когда вы выберете текст, появится встроенное меню форматирования. Нажмите TAB, чтобы войти в него. Некоторые элементы, такие как многофункциональные вставки ссылок, картинок, индикаторов загрузки и сообщений об ошибок могут быть вставлены в редактор. Вы можете перемещаться по ним, используя стрелки внутри редактора и удалять с помощью клавиш delete или backspace.