python - 脚本语言解释器如何引用它们的底层函数?

标签 python hashmap interpreter rhino v8

当谈到脚本解释器时,如 Rhino、Google V8、Python 等 - 是否有任何通用方法来确定底层 native 方法,仅给出一串脚本语言?

在某些时候,这些解释器是否使用带有字符串的散列映射作为键?还是有很多字符串相等性测试和分支?

最佳答案

他们通常使用带有字符串键的 HashMap ,但函数查找的结果通常会被缓存,以避免在几纳秒后再次进行完全相同的查找。

当然,如果发生疯狂的事情,例如程序分配给或删除函数,则必须清除缓存。

JIT 编译器可以使用 inline caching使可预测的函数调用在填充缓存后运行得非常快。

编译器甚至可以吐出直接调用底层函数的机器代码。同样,如果程序替换或删除该函数,则编译后的代码将变得无效;因此解释器必须有办法检测这种情况并更新或丢弃无效的 JIT 代码。

关于python - 脚本语言解释器如何引用它们的底层函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11907410/

相关文章:

compiler-construction - 编译语言可以是谐音的吗?

python - 使用 Altair 直接标记线图

java - 使用 HashMap 用名词替换数字

java - 这里不需要方法引用表达式,编译时错误

java - 将字符串数组列表拆分为多个子字符串并将它们添加到 hashmap : JAva | Selenium

python - 在 python 文件中指定编码时,python 中的 "magic lines(s)"如何工作?

haskell - 用 Haskell 编写的简单解释器,将打印输出保存到最后,而不是遇到打印语句时

python - 按键合并字典数组

python - 使用 Haar 进行人脸检测 - OpenCV python

python - 为什么 Cython 比向量化的 NumPy 慢?