О том, как грядущая версия Питона стала ещё чуточку быстрее.
На днях в грядущую версию 3.8 было влито изменение, реализующее кеширование для кодов операций.

В изменении bpo-26219 кеширование стали использовать для операции LOAD_GLOBAL, которая используется при доступе к глобальным переменным.

Теперь доступ к глобальным переменным (включая «изкоробочные» — builtin) осуществляется процентов на 40 быстрее. Таким образом, скорость доступа к глобальным уже можно сравнивать со скоростью доступа к локальным (впрочем, локальные всё равно остаются немного быстрее).

На заметку
Оценить эффективность использования кеша можно задав OPCACHE_STATS=1 при сборке интерпретатора. После этого в консоль будет выводится информация об утилизации кеша и количестве объектов в нём.

Вероятно в будущем кеш может быть использован также для операций LOAD_METHOD (обращение к методу) и LOAD_ATTR (обращение к атрибуту).

За реализацию следует благодарить Юрия и Инаду.

Категории

Язык
Область
Интерпретатор

На заметку
У нас есть представительство во ВКонтакте. Ссылка в самом низу страницы.