Описание проекта:
Рассматривается production-пайплайн на Go для распознавания документов (PDF/JPG/PNG → подготовка изображений → OCR → выделение таблиц → постобработка). Проект уже используется в продакшене и стал площадкой для реальных оптимизаций.
Почему это интересно:
Обработка документов — отличный «hot path»: тысячи мелких операций (декодирование, OpenCV, вызовы Tesseract, аллокации) и высокая чувствительность к поведению планировщика Go. Здесь важно уметь управлять параллелизмом, разграничивать CPU-bound и I/O-bound задачи и понимать, как runtime влияет на производительность.
Что будет в докладе:
* Архитектура пайплайна: синхронный поток с параллельностью на отдельных этапах.
* Проблемные места: границы распараллеливания, троттлинг Tesseract, смешение CPU и I/O нагрузки.
* Планировщик Go (M/P/G): влияние системных вызовов, preemption, работа с blocking-операциями.
* Набор практических оптимизаций: low value и medium-high value оптимизации
* Demo: профилирование до/после (pprof, schedtrace, latency-метрики).
* Рекомендации: «quick wins», более рискованные оптимизации и краткий обзор остальных основных способов ускорить Go-код.
Для кого:
* инженеры, пишущие высоконагруженные пайплайны обработки данных;
* интеграторы OCR/vision-функций;
* разработчики, которые хотят понять, как знание Go-планировщика помогает превращать «просто работающую» систему в эффективную — без перехода на низкоуровневый C.