Обычно, когда сервис тормозит, все бегут переписывать код или докупать память. Я же пошла по пути цифр. Имели Python-микросервис, задержки по 800 мс и кучу споров в команде. Вместо гадания я достала py-spy и построила flame graph. Выяснилось невероятное, 60% времени тратилось не на бизнес логику, а на парсинг тяжёлых JSON стандартной библиотекой. Она просто не справлялась с объёмом. Решение - замена на orjson. Скорость сразу выросла, но это было только начало. Вторым шагом я подключила scalene. Он подсветил тяжёлую синхронную функцию внутри асинхронного цикла asyncio. Она блокировала весь поток на 50 мс, заставляя остальные запросы стоять в очереди. Я вынесла расчёты в ProcessPoolExecutor, задействовав свободные ядра процессора и добавила Redis для кеширования. Время ответа упало с 800 мс до 80 мс. Профилировщик - это рентген для программиста. Пока не видишь снимок системы, не начинай лечение. Оптимизировать нужно не всё подряд, а только то, что реально тормозит и тогда результат в 10x