首页 > 解决方案 > Ruby 中访问修饰符的实现和性能

问题描述

我正在对动态语言中的访问修饰符进行一些研究,我想了解更多关于 Ruby 如何实现它们的信息。我特别感兴趣的是访问控制检查是否发生在运行时,或者是否发生了任何提前或评估时优化,这可能要归功于即时编译步骤。如果在当前的 Ruby 实现中没有这样的优化,我仍然很想知道这在理论上是否可行。

此外,如果privateorprotected方法确实需要在调用方法时进行运行时检查以确保应允许访问,那么对性能的影响有多大?我猜想所有方法调用都需要进行这种运行时检查,包括公共方法调用,这是否意味着所有方法调用本质上都比 Ruby 没有访问修饰符时要慢?

我意识到这些是关于 Ruby 解释器内部的相当技术性的问题,详细理解这一点的最佳方法是阅读 Ruby 源代码。但我不是 Ruby 开发人员,并且对学习适用于动态语言和一般访问修饰符的原则更感兴趣,所以我希望这里有人能够分享他们对 Ruby 内部的知识。


到目前为止我所做的研究:

标签: rubyperformancecompiler-constructionaccess-modifiersdynamic-languages

解决方案


推荐阅读