知识卡片
自足执行会形成一个正循环:语言实现者被迫为自己的语言的性能持续创新
内容
如果一门语言的运行时是用别的语言写的,那么实现者只需要关心”这门语言好不好用”,运行时本身的性能瓶颈可以靠外部语言的既有工具解决。但一旦运行时必须用这门语言自己写(自足执行),实现者就被迫直接面对这门语言在自己最关键、最高性能要求的场景下到底好不好用——这种压力反而会推动他们去发现原本想不到的、高效实现这门语言核心特性的新方法。Jikes RVM作为用Java写成的Java虚拟机,被证明是测试新垃圾收集算法、新的语言特性(如X10的线程安全机制)的绝佳平台,因为任何一项改进,都会立刻被同一套代码库自己吃到。这提示一个判断”该不该自举”的角度:自举本身带来的短期实现难度,可能会换来一种长期的、自我验证的性能改进动力——你必须先说服自己的语言足够好,才能说服它去实现自己。
参考来源
《架构之美》第10章《元循环虚拟机的力量:Jikes RVM》