
Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
02.08.2018, 19:53
|
|||
|---|---|---|---|
|
|||
FastReport и большой отчёт |
|||
|
#18+
Подскажите, как можно побороть out of memory? Есть Delphi 10.2 FastReport 5.6.9 Клиенту требуется сделать выгрузку всех активных клиентов (у кого открыт договор на обслуживание). Таких записей 9-10к Полей не так уж и много. Сам запрос за секунду выполняется А вот при генерации отчёта программа думает несколько минут (даже на относительно мощном ПК) и выдаёт out of memory 64 bit приложение компилировать не пробовал, т.к.: 1. Либы x64 не стоят 2. Компы у клиента слабые (pentium), памяти 3-4 Гб 3. Из-за п.2 у них стоят WinXP и Win7 x86 На одну страницу помещается примерно 20 записей. Т.е. страниц дофига на самом деле. Что в такой ситуации можно сделать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
02.08.2018, 20:28
|
|||
|---|---|---|---|
FastReport и большой отчёт |
|||
|
#18+
cr@nk, не использовать отчетник для выгрузки (9-10K) | тикет с тестовым объёмом в ТП FR | madExcept etc ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
02.08.2018, 21:08
|
|||
|---|---|---|---|
FastReport и большой отчёт |
|||
|
#18+
ma1tuscr@nk, не использовать отчетник для выгрузки (9-10K) | тикет с тестовым объёмом в ТП FR | madExcept etc ... если надо сгенерить - значит, надо сгенерить. я бы делал порциями, а не всё сразу ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
02.08.2018, 21:32
|
|||
|---|---|---|---|
FastReport и большой отчёт |
|||
|
#18+
cr@nk Таких записей 9-10к ... На одну страницу помещается примерно 20 записей. Т.е. страниц дофига на самом деле. Целых 500. Это не так много. Если только в отчёте не присутствуют изображения с разрешением 2000х3000 Попробуйте установить Код: pascal 1. 2. 3. Если не поможет - ma1tusтикет с тестовым объёмом в ТП FR ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
02.08.2018, 21:50
|
|||
|---|---|---|---|
FastReport и большой отчёт |
|||
|
#18+
defecator, ну, если заказчик определяет техчасть, то... ладно ) почему бы нет, можно и кусками, с подтяжкой на предыдущую страницу, формировать... чтобы в итоге обнаружить, что превью не тянет; смысл-то, тыкаться вслепую - откуда ТС в аут выпадает... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
02.08.2018, 22:04
|
|||
|---|---|---|---|
FastReport и большой отчёт |
|||
|
#18+
отлично запросы разбиваются на части по вменяемое количество строк и превью выводится столько раз, сколько понадобится ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
02.08.2018, 22:18
|
|||
|---|---|---|---|
FastReport и большой отчёт |
|||
|
#18+
ma1tusdefecator, ну, если заказчик определяет техчасть, то... ладно ) почему бы нет, можно и кусками, с подтяжкой на предыдущую страницу, формировать... чтобы в итоге обнаружить, что превью не тянет; смысл-то, тыкаться вслепую - откуда ТС в аут выпадает... FR формирует картинки в памяти, целиком все, потом их выводит на принтер Если страниц много, то Out of memory неизбежен ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
02.08.2018, 22:21
|
|||
|---|---|---|---|
|
|||
FastReport и большой отчёт |
|||
|
#18+
ma1tusне использовать отчетник для выгрузки (9-10K) | тикет с тестовым объёмом в ТП FR | madExcept etc ... Ну вот надо заказчику получить печатный вариант этой таблички А что даст ТП FR ? Я пробовал выгрузить просто 1к записей - падает. 200 - норм обрабатывает. Это на скорую руку. Не представляю, что в ТП искать. defecatorя бы делал порциями, а не всё сразу Начал думать в этом направлении, но пока не придумал красивой реализации gpiЦелых 500. Это не так много. Если только в отчёте не присутствуют изображения с разрешением 2000х3000 Попробуйте установить Нет, не помогло. Я до создания топика эти параметры менял (кроме картинок, т.к. их нет в отчёте) krapotkinотлично запросы разбиваются на части по вменяемое количество строк и превью выводится столько раз, сколько понадобится Это и есть часть проблемы по красивой реализации. Если это печать, то тут без проблем можно распечатать все отчёты. А если надо сохранить всё в один файл? Любят там PDF и Excel. То это всё становится не так уж и просто На данный момент заколхозил так: таблица выгружается просто в CSV, а дальше руками приводится к нормальному виду перед печатью или отправкой этого файла. Благо это функция редко востребована пока что. А пока буду реализовывать как-то ещё ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
02.08.2018, 22:27
|
|||
|---|---|---|---|
|
|||
FastReport и большой отчёт |
|||
|
#18+
P.S.: При использовании кэша на диске тоже ловлю аут и видно, что временный файл весит 4 Гб. Ну предел для 32 бит ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
02.08.2018, 23:44
|
|||
|---|---|---|---|
FastReport и большой отчёт |
|||
|
#18+
20000 строк. Время генерации - доля секунды ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
03.08.2018, 07:19
|
|||
|---|---|---|---|
|
|||
FastReport и большой отчёт |
|||
|
#18+
Аналогично, строил ответ на 2000 страниц. Строился мгновенно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
03.08.2018, 10:32
|
|||
|---|---|---|---|
FastReport и большой отчёт |
|||
|
#18+
вот так и тестят разрабы сред и либ свои поделия, а на реальных задачах оказывается не так чтобы уже и работает ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
03.08.2018, 11:12
|
|||
|---|---|---|---|
|
|||
FastReport и большой отчёт |
|||
|
#18+
cr@nk, а не может такого быть, что в отчете используется нестандартный (manual) с хитрой логикой вывод через Engine? И из-за ошибки в коде случился вечный цикл? или из кода Delphi в цикле по датасету и забыли .Next вызвать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
03.08.2018, 11:22
|
|||
|---|---|---|---|
|
|||
FastReport и большой отчёт |
|||
|
#18+
Кроик Семён cr@nk, или из кода Delphi в цикле по датасету и забыли .Next вызвать? Та ну, 200 строк он же как-то выводит... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
03.08.2018, 11:49
|
|||
|---|---|---|---|
|
|||
FastReport и большой отчёт |
|||
|
#18+
cr@nkP.S.: При использовании кэша на диске тоже ловлю аут и видно, что временный файл весит 4 Гб. Ну предел для 32 бит Полное собрание сочинений Л.Н. Толстого в 90 томах меньше места занимает, а у вас 500 страниц. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
03.08.2018, 11:54
|
|||
|---|---|---|---|
FastReport и большой отчёт |
|||
|
#18+
DarkMasterКроик Семён cr@nk, или из кода Delphi в цикле по датасету и забыли .Next вызвать? Та ну, 200 строк он же как-то выводит... Ещё можно при каждом выводе бэнда создавать мемки на нём, а старые не удалять ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
03.08.2018, 12:46
|
|||
|---|---|---|---|
FastReport и большой отчёт |
|||
|
#18+
Ограничить запрос банальным limit и проверить, сможет ли сформироваться меньшее количество страниц (и заодно оценить регрессию в производительности от кол-ва данных). Возможно, проблема не в самом фасте, а в том коде, что используется для формирования (например, есть кастомный код в самом отчете для форматирования или получения данных; или в датасете авторасчетные поля с внешними запросами). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
03.08.2018, 12:54
|
|||
|---|---|---|---|
FastReport и большой отчёт |
|||
|
#18+
Balicr@nkP.S.: При использовании кэша на диске тоже ловлю аут и видно, что временный файл весит 4 Гб. Ну предел для 32 бит Полное собрание сочинений Л.Н. Толстого в 90 томах меньше места занимает, а у вас 500 страниц. сомневаюсь, что 90 томов отсканированных страниц в растре будет весить меньше 4-х гигов ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
03.08.2018, 13:52
|
|||
|---|---|---|---|
FastReport и большой отчёт |
|||
|
#18+
defecatorсомневаюсь, что 90 томов отсканированных страниц в растре будет весить меньше 4-х гигов 90 томов от 2х до 5 метров. 5 * 90 = 450 метров ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
03.08.2018, 13:53
|
|||
|---|---|---|---|
FastReport и большой отчёт |
|||
|
#18+
в PDF - 30м 30*90=2700, около 3гиг ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
03.08.2018, 14:00
|
|||
|---|---|---|---|
FastReport и большой отчёт |
|||
|
#18+
DimaBr, я же написал - в РАСТРЕ, а не в сжатом виде ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
03.08.2018, 15:59
|
|||
|---|---|---|---|
|
|||
FastReport и большой отчёт |
|||
|
#18+
defecatorя же написал - в РАСТРЕ, а не в сжатом виде Так может и cr@nk в растре выводит? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
03.08.2018, 16:33
|
|||
|---|---|---|---|
FastReport и большой отчёт |
|||
|
#18+
Balidefecatorя же написал - в РАСТРЕ, а не в сжатом виде Так может и cr@nk в растре выводит? FR страницы формирует вроде как в растре, потому и память жрёт, как не в себя ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
03.08.2018, 18:01
|
|||
|---|---|---|---|
|
|||
FastReport и большой отчёт |
|||
|
#18+
defecator, Нет, загруженные страницы хранятся как объекты в кеше (PagesInCache). Все остальное выгружается в XML. Никаких растров там нет. автор=cr@nk А что даст ТП FR ? Если это с нашей стороны и можно быстро поправить, то исправим в ближайшее время. Но тут нужен конкретный кейс, а не абстракции. Обычный отчет на такое кол-во записей не может столько отъедать памяти. Это только возможно если на одной страницы тысячи объектов с текстом. Или к примеру рич тест с контентом в несколько десятков мегабайт. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=58&mobile=1&tid=2040560]: |
0ms |
get settings: |
10ms |
get forum list: |
18ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
184ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
66ms |
get tp. blocked users: |
1ms |
| others: | 239ms |
| total: | 540ms |

| 0 / 0 |
