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