Замер подтвердил догадку: sherpa-onnx и onnxruntime держат GIL. Две задачи в двух потоках идут ровно столько же, сколько подряд (1.04x у диаризации, 1.17x у распознавания) - отсюда и незагруженный процессор при работе. В двух процессах те же задачи дают 1.59x даже с загрузкой моделей в каждом. Пул процессов включается при workers > 1. Функции воркера вынесены в модуль, не тянущий app.main: на Windows дочерний процесс поднимается через spawn и иначе стартовал бы ещё один веб-сервер. Если процессы не запустятся, сервис откатывается на однопроцессный режим. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2 lines
22 B
Python
2 lines
22 B
Python
__version__ = "0.5.0"
|