Крім припинення підтримки Python 2.7, іншою важливою зміною стало включення
Проведення профілювання наявного коду показало, що основний час при обчисленнях витрачається на виклик функцій use_reduce і catpkgsplit з набором аргументів, що повторюється (наприклад, функція catpkgsplit викликалася від 1 до 5 млн разів). Для прискорення було використано кешування результату роботи цих функцій з використанням словників. Оптимальним для зберігання кешу була вбудована функція lru_cache, але вона була доступна лише у випусках Python, починаючи з 3.2. Для сумісності з попередніми версіями була додана заглушка, що підміняє lru_cache, але рішення про припинення підтримки Python 2.7 в Portage 3.0 сильно спростило завдання і дозволило обійтися без даного прошарку.
Використання кешу дозволило знизити час виконання операції "emerge -uDvpU -with-bdeps=y @world" на ноутбуці ThinkPad X220 з 5 хвилин 20 секунд до 3 хвилин 16 секунд (63%). Тести на інших системах показали приріст продуктивності не нижче 48%.
Розробник, що підготував зміну, також спробував реалізувати прототип коду дозволу залежностей на C++ або Rust, але завдання виявилося занадто складним, оскільки вимагала портування великого обсягу коду, і, при цьому, було сумнівно, що отриманий результат коштував би витрачених зусиль.
Джерело: opennet.ru