Ускорить формирование отчёта и снизить потребление памяти при батче 230 файлов #1

Closed
opened 2026-10-09 18:01:57 +03:00 by aep · 0 comments
Owner

Боевой прогон 230 XML-файлов занял 45 минут (100 файлов — 6 минут). Профиль на синтетике: ~84% времени строки отчёта уходит в build_fixed_row_by_index (перебор 2 374 кандидатов путей на строку, 7 млн вызовов _pick_value на 13 800 строк), остальное — xlsxwriter. Контейнер по raisa_config.yml — 0.25 CPU / 1 GB.

Цель:

  • Сократить стоимость строки отчёта в build_fixed_row_by_index без изменения содержимого отчёта (обратный индекс путь -> колонки или эквивалент; дифференциальный тест старое/новое).
  • Убрать лишние копии вложений в памяти (main._save_attachments) и проверить GC-настройки на длинном батче.
  • Прогресс в UI по файлам уже есть в ветке (d1daecd); убедиться, что колбэк не замедляет батч, добавить тест.
  • Бенчмарк-скрипт в репозитории для воспроизводимого замера (строк/с).

База: ветка migrate_to_opencloud.

Боевой прогон 230 XML-файлов занял 45 минут (100 файлов — 6 минут). Профиль на синтетике: ~84% времени строки отчёта уходит в build_fixed_row_by_index (перебор 2 374 кандидатов путей на строку, 7 млн вызовов _pick_value на 13 800 строк), остальное — xlsxwriter. Контейнер по raisa_config.yml — 0.25 CPU / 1 GB. Цель: - [ ] Сократить стоимость строки отчёта в build_fixed_row_by_index без изменения содержимого отчёта (обратный индекс путь -> колонки или эквивалент; дифференциальный тест старое/новое). - [ ] Убрать лишние копии вложений в памяти (main._save_attachments) и проверить GC-настройки на длинном батче. - [ ] Прогресс в UI по файлам уже есть в ветке (d1daecd); убедиться, что колбэк не замедляет батч, добавить тест. - [ ] Бенчмарк-скрипт в репозитории для воспроизводимого замера (строк/с). База: ветка migrate_to_opencloud.
Sign in to join this conversation.
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: RSHB/SFM#1
No description provided.