В ответ на вопрос: «Как я могу использовать эту идею, чтобы ускорить мой код на C ++, Python и Java?»
Я не думаю, что среда исполнения Python выполняет такие функции, как автоматическое встраивание небольших методов. (Если это не так, кто-то, пожалуйста, поправьте меня!) Так что в Python, если у вас есть фрагмент кода, который очень чувствителен к производительности, возможно, выполняется десятки тысяч или миллионы раз во внутреннем цикле, Вы можете попробовать встроить вручную. Только делайте это, если код действительно является узким местом, и он действительно должен быть настолько быстрым, насколько это возможно, и всегда проверять, действительно ли такая оптимизация помогает. (Если вы попытаетесь вставить что-то, а это не поможет, лучше отменить оптимизацию, потому что встраивание, как правило, затруднит чтение вашего кода.)
В Java и C ++ любой хороший компилятор встроит небольшие методы для вас. То, что может (иногда) делать, - это помочь компилятору увидеть, что метод может быть встроенным. Если точный вызываемый метод зависит от типа объекта во время выполнения (как при использовании методов virtual
в C ++), компилятор не сможет встроить вызов. Методы static
в Java могут быть легко встроены, и объявление методов как final
(когда это имеет смысл) также может позволить компилятору встроить.
Если в будущем вы узнаете больше о компиляторах и о том, как они работают, вы сможете лучше понять, как писать чувствительный к производительности код таким образом, чтобы компилятор мог оптимизировать его для вас.