时下不少人拿PHP7的高性能与HHVM来做比较,那么问题来了:随着PHP7性能的提升,我们能预测出未来PHP这门语言会用PHP写出来么?
对解释型语言来说,有用语言本身来重写这门语言的其他实例么?我认为即使有这样的实例,在这个环境下,这门语言的某些部分必定是不可用的。
Otterfan:
较经典的实例就是PyPy,这是一个用RPython(Python的一个子集)写出来的Python解释器和实时编译器。
Mattsah:
虽然对Python不是很熟悉,但我不得不考虑下(如有误欢迎更正),这样一来它的动态性能或者说某些特性是不是会受到限制?
Otterfan:
实际上并没有。它基本上能与Python2.7.8和Python3.2.5兼容,甚至它有时候比规范的Python(CPython)运行的还要快。
实际上的过程是这样的:Rpython通过PyPy的RPython工具链被翻译成C版本,然后这个C版本被编译为二进制机器码,接着用户层的Python就会运行在这个二进制机器码上。你当然也可以在规范的CPython解释器之上来运行PyPy解释器,不过这样子PyPy会运行的很慢。
PyPy同样也是一个实时编译器,这才是PyPy通常能产生出甚至比CPython还要快的代码的真正原因,代价只是启动的时候稍微有点延迟。PHP则不会有像PythonWeb开发的这个缺点,因为PythonWeb应用是快速性就全部启动并开始运行,而不是像PHP一样响应每个请求才开始逐步启动。
Chippiewall的观点:你不可能在没有一个解释器来运行的前提下写出一个解释型语言的解释器。
Ircmaxell的评论:
这个观点严格意义上是不对的。
另外更正一点,PHP并不是一门解释型语言,而是一门编译型语言。
明白了这一点,就很不一样了。是的,编译器并不会产生出原生的机器码,但还是存在这么一个编译器的。并且虚拟机使用的每个单独的操作在理论上都会被产生的机器码所代替。看看Zend’s“JIT”编译器吧,它根本就不是一个实时编译器,而是一个AOT编译器。很有效地说,它能产生出原生的机器码而不是虚拟机代码(但有相同的语义)。
所以如果拿一个用PHP(Recki-CT或PHPPHP)写的编译器,我们是能够用它来编译自身的。这就意味着,只要我们引导它快速,我们就不再需要“编译器”(虚拟机)了。
Mattsah的观点:
对解释型语言来说,有用语言本身来重写这门语言的其他实例么?我认为即使有这样的实例,在这个环境下,这门语言的某些部分必定是不可用的。
Otterfan:
较经典的实例就是PyPy,这是一个用RPython(Python的一个子集)写出来的Python解释器和实时编译器。
Mattsah:
虽然对Python不是很熟悉,但我不得不考虑下(如有误欢迎更正),这样一来它的动态性能或者说某些特性是不是会受到限制?
Otterfan:
实际上并没有。它基本上能与Python2.7.8和Python3.2.5兼容,甚至它有时候比规范的Python(CPython)运行的还要快。
实际上的过程是这样的:Rpython通过PyPy的RPython工具链被翻译成C版本,然后这个C版本被编译为二进制机器码,接着用户层的Python就会运行在这个二进制机器码上。你当然也可以在规范的CPython解释器之上来运行PyPy解释器,不过这样子PyPy会运行的很慢。
PyPy同样也是一个实时编译器,这才是PyPy通常能产生出甚至比CPython还要快的代码的真正原因,代价只是启动的时候稍微有点延迟。PHP则不会有像PythonWeb开发的这个缺点,因为PythonWeb应用是快速性就全部启动并开始运行,而不是像PHP一样响应每个请求才开始逐步启动。
Chippiewall的观点:你不可能在没有一个解释器来运行的前提下写出一个解释型语言的解释器。
Ircmaxell的评论:
这个观点严格意义上是不对的。
另外更正一点,PHP并不是一门解释型语言,而是一门编译型语言。
明白了这一点,就很不一样了。是的,编译器并不会产生出原生的机器码,但还是存在这么一个编译器的。并且虚拟机使用的每个单独的操作在理论上都会被产生的机器码所代替。看看Zend’s“JIT”编译器吧,它根本就不是一个实时编译器,而是一个AOT编译器。很有效地说,它能产生出原生的机器码而不是虚拟机代码(但有相同的语义)。
所以如果拿一个用PHP(Recki-CT或PHPPHP)写的编译器,我们是能够用它来编译自身的。这就意味着,只要我们引导它快速,我们就不再需要“编译器”(虚拟机)了。
所以,Chippiewall的观点是不对的。
以上内容由大宛网络(西安网站设计,西安网站制作)为您提供,更多精彩内容:http://www.nyweixin.com/
关注“大宛网络”微信西安公众号,快速获取互联网较新资讯
我们凭借多年的网站建设经验,坚持以“帮助中小企业实现网络营销化”为宗旨,累计为500多家客户提供品质建站服务,得到了客户的一致好评。如果您有网站建设、手机网站制作、公众号二次开发、网站改版、SEO网站优化、小程序开发、网站备案等方面的需求...
请立即点击咨询我们或拨打咨询热线: 1823-7777-110,我们会详细为你一一解答你心中的疑难。项目经理在线
请立即点击咨询我们或拨打咨询热线: 1823-7777-110,我们会详细为你一一解答你心中的疑难。项目经理在线