Я пытаюсь прочитать о производительности Ruby, и наткнулся на этот поток SO , где в одном из ответов упоминается, что "вызовы методов, одна из самых распространенных операций в Ruby, особенно медленные. «
Другой поток упоминает, что "Он выполняет" поздний поиск "для методов, чтобы обеспечить гибкость. Это немного замедляет его. Он также должен запоминать имена для контекста, чтобы обеспечить eval, поэтому его кадры и вызовы методов медленнее. "
Может кто-нибудь объяснить более подробно, почему вызовы методов Ruby являются особенно медленными, и подробно описать второй поток? Я не совсем уверен, что такое поздний поиск или почему он медленный, и я не знаю, что означают имена в контексте или как они связаны с фреймами и вызовами методов.
Мое (возможно, неправильное) понимание состоит в том, что, поскольку методы могут быть добавлены или изменены во время выполнения, интерпретатор Ruby никогда не может "запомнить", как запустить тот или иной метод, поэтому он должен искать метод каждый раз, когда выполняется программа и это означает, что вызовы методов являются медленными. Но исправления и более технические объяснения были бы хороши.