你知道要加倍php7性能的关键
20岁的老将的网络编程语言PHP,最快的将发布的PHP 7版本在十月底,这是十年来第一次重大修订,最大的特点是性能的重大突破,比PHP 5快上一倍以前的版本的PHP Rasmus Lerdorf,说父亲,比PHP程序的hhvm虚拟机性能更快。hhvm是它自己的网站脸谱网的PHP优化机制,它不一定适用于任何网站。但PHP之父说,一个新的目标是使任何网站开发者甚至失去即使使用开发框架Drupal和开源电子商务系统的hhvm Opencart的技术性能,对新版的前夕,他还利用了phpconf台湾会议分享到PHP 7的性能突破的关键。
成熟的语言几次和众多的优化修改后的20年,也是提高双突破的表现是不容易的,PHP之父说,与大多数容易找到许多新的改进项目,PHP的新版本不是程序修改的结果的一部分。相反,PHP 7的性能不输hhvm通过许多细节的优化和性能的积累。
Rasmus Lerdorf与PHP的核心贡献团队已经花了很多努力来减少内存数字移动程序运行时数,从而加快性能。例如,在PHP中,变量的数据结构是从24位下降到16位,Hashtable从72位降至56位。检查PHP中的函数,看看是否有改进性能的余地。
除了减少内存的使用PHP之父的工作原理,CPU的高速缓存线的多个视图,了解如何与CPU代码交互,编译器如何编译的CPU代码和其他细节的新框架,确保PHP 7的程序代码与现代CPU架构。虽然每个项目绩效的贡献小于0.5%,但由于许多优化项目,或修改的功能将由应用程序反复调用,整体校正的结果会使这样一个大的进步。
受hhvm,它决定与性能和功能创建PHP
脸谱网创造了一个虚拟机hhvm与JIT编译优化PHP操作。虽然hhvm具有快速的执行性能,其具体目的优化设计只能满足少数开发商。相反,PHP之父还希望提高PHP的性能。它还希望满足高端用户和业余用户的需求,使PHP 7成为一种兼具性能和通用功能的编程语言。
然而,在少数人使用的编程语言市场的发展路线并不难,但针对对象的PHP项目还必须符合发展的原则下,开发商和专业业余用户的需求,也难以弥补,因为总是会有需求的人群的一部分不满足,这就像水喷在规模大,并且都是用少许湿水,但没有一个人的衣服都湿了。Rasmus Lerdorf比喻。
无插件框架是优秀的PHP的运行性能,但受外部框架,它可以在几秒钟内处理Web页面请求的PHP数以千计,其性能已下降到大量的数以万计的请求。Rasmus Lerdorf表明在hhvm的到来,对PHP的性能的性能要求相比,用户更关心的是PHP可以降低Web开发的难度,而且这些框架可以让开发人员的工作更容易。但在hhvm脸谱网介绍,一些用户重视PHP的性能,让PHP之父意识到许多用户的性能要求。他开始思考如何整合对hhvm PHP JIT架构。
但是PHP之父说,PHP和hhvm是建筑设计,完全不同,例如,多线程架构的hhvm不扎实。此外,hhvm的便携性不好,在Windows平台上操作。还有很长的路要走。许多开发商PHP在Windows环境下开发的,但hhvm不能照顾那些用户。
Rasmus Lerdorf说他不能放弃PHP的主要建筑,虽然他们认为这两者的结合,但也有对hhvm许多限制使用。虽然hhvm是脸谱网和许多开发者的一个很好的工具,但对于PHP项目,对hhvm范围不够广泛满足特定项目,如脸谱网或维基百科的需求。
很难导入非强类型语言的PHP并导入JIT。
然而,它是增加JIT编译PHP Rasmus Lerdorf非常困难。表明JIT必须学会识别的操作模式(模式)的程序,比如知道哪部分是重要的程序代码,并预测时间是在程序运行的程序调用之前,或程序的哪些部分会打电话。
Rasmus Lerdorf类比,在许多汽车,JIT必须能够预测汽车的哪一部分会变好的,车的部分将转左,或一些颜色的汽车将直接。JIT必须预测好,否则性能会大大降低,但如果预测正确,程序的性能将大大提高。。
在通用编程语言的编译中加入JIT是不容易的。Rasmus Lerdorf表明PHP的动态属性(动态)使得它很难加入JIT。例如,开发商宣称的参数值是1美元,但并不意味着所有的元程序的值是1,因为在PHP的参数值可以很容易地重新定义。在C语言,当开发商宣称的参数为一个整数,则始终是一个整数。如果在程序的任何地方声明不是整数类型,甚至编译不能被执行,因为C语言是一个强大的编程语言,JIT可以预测这个变量是整数,但在PHP中,我们没有这种奢侈。他解释说,hhvm JIT实践当是整数类型甚至假设A总是一个整数。
在某种程度上,hhvm限制了PHP的发展为了编译JIT。用户hhvm必须声明变量的性质明确,但开发商们使用PHP可以先声明的类没有属性(类),然后指定类别的变量属性。没有任何限制,它的东西我们要添加的JIT PHP。PHP必须考虑到WordPress,Drupal开发者,和其他的框架,他说,并不能阻止该框架的支持时,与hhvm,PHP创建JIT限制多。
但是,这并不意味着我们不能做JIT。此外,我们还必须控制PHP的发展趋势。Rasmus Lerdorf说。
目前,Dmitry Stov,一个PHP核心开发者,开发了一个原型JIT和使用一些实验应用的测试操作。Rasmus Lerdorf表明如果JIT是用来执行一些重复的操作或循环程序,PHP的性能7快10倍。
但他也承认,当实验JIT应用于WordPress时,它并没有得到任何加速效果。他说:我们想创造JIT,而不是在大学课本中学到的东西,而是在现实世界中运行的JIT。因为PHP一直坚持这样一个理想,试图解决人们生活中的问题,并能在现实世界中的在线环境中运作,而不仅仅是在教科书中。
PHP之父说,在PHP的到来的时候,他花了一天时间开发PHP至少16小时。但此时此刻,他已经逐渐减少了他的投资发展,把他的思想宣传说世界各地。而不是开发它,他说,它更好地激励那些比我更聪明,而且愿意花一天写程序开发PHP十八小时。他说,他的最终目标是没有代码写在他的PHP。任何一个增长的项目不应该由开发商主导。旧程序代码应该被新的程序代码取代,他认为其他开发人员应该把它作为目标。