Я создаю REST API на Python, используя Python 2.6, Flask для 64-битной Linux.
Меня попросили определить, как GIL может повлиять на производительность этой службы. Что, если произойдет что-то, что заставит интерпретатор заблокироваться на несколько секунд? Интуитивно это помешает производительности, но мне нужно продемонстрировать влияние.
Конкретная проблема заключается в том, что если кто-то вводит код (например, расширение C), который вызывает большое количество дополнительных блокировок, может ли это сделать весь API полностью бесполезным?
Я хотел бы что-то вроде time.sleep(), которое в основном блокирует интерпретатор на определенный период времени. Я мог бы создать модельный API, в котором запросы запускают блокировки разной длины, а затем продемонстрировали бы степень сокращения параллелизма в зависимости от количества времени, проведенного в блокировке.