Как определить какой участок кода программы не распаралеливается?
Я на питоне 3.10 разработал достаточно внушительную программу, работающую в большом числе потоков (4-5 тысяч). Большую часть времени эти потоки занимаются ожиданием ответа от сервера (технология long polling). И я столкнулся с проблемой, что при увеличении числа потоков программа начинает работать очень медлено, каждый поток ждёт своей очереди по 10-15 секунд. Я ищу способ увеличить число потоков до 15-20 тысяч. Одно из предположений - в программе есть нераспаралеливаемые участки, которые должны выполниться целиком что бы очередь пошла дальше. Поэтому хотел бы спросить у профессионалов, как можно оптимизировать программу и найти такие участки, размер программы очень внушительный (дипломный проект).