CPython和IronPython的功能差异
根据我的理解,IronPython 是先编译成字节码,然后通过 .net 的 CLR 转换成机器码,而 CPython 则是编译成字节码后,由 PVM 进行解释。这是真的吗?CLR到底是什么?它也是一种虚拟机吗?这是否意味着 IronPython 更快?希望有人能给我解释一下。
1 个回答
4
IronPython 是一种编程语言,它会把代码转换成微软的中间语言(MSIL),这有点像 CPython 生成的字节码。然后,有一个叫做公共语言运行时(CLR)的虚拟机来执行这些 MSIL 代码。CLR 里面有一个即时编译器(JIT),它会把 MSIL 转换成可以直接在电脑上运行的本地代码。
而 CPython 没有这个即时编译器。IronPython 的维基页面上提到性能方面的内容:
性能上,IronPython 和 CPython 比较相似——在某些情况下会更快(因为它可以利用底层平台的 JIT 编译器),但在其他情况下会更慢(特别是对于一些内置的容器类型,因为在优化 CPython 的这些类型上做了很多工作)。