究竟是什么令微软为Windows改进PHP |
本文标签:PHP 微软正在努力改进PHP在Windows上的运行速度,看来微软对开源社区日渐支持 。从另一方面看,51CTO从最新一期编程语言排行榜上看到,PHP份额在逐步上升 。 微软开源社区主管Garrett Serack最近接受了媒体采访,谈论了微软为实现这一目标所做的努力 。 在Windows部署PHP应用性能欠佳 数年以来,PHP开发者或许可能会选择在Windows上进行开发工作,但却很少有人选择将PHP程序部署在Windows上 。Serack表示,出现这个结果不是没有道理的 。他表示,“当用户在Windows上高兴的运行一个PHP应用时,IIS可能会突然崩溃,而且没人知道其原因何在 。现有PHP驱动器基于老协议,性能不高 。而原因在于PHP社区缺少完善它所必需的信息 。” Serack认为,自从微软开发者了解到使用PHP语言可以开发第三方应用,微软就面临着一个新问题 。微软逐渐开始意识到,开发者之所以不在Windows上部署PHP,原因是他们无法使用,并且微软内部的一部分人开始准备做出改变 。自此之后,Serack的大部分时间都花在这个工作上 。 微软改善Windows对PHP的支持 首先鼓励微软改善Windows对PHP支持的是SQL Server团队,它希望让现有开源应用可以更好的使用SQL Server驱动 。也就是说,他们希望开发者在Windows上部署PHP应用时,使用SQL Server而不是MySQL,或者说至少是为了减少人们对自己的批评 。2007年10月,首个新改进版的Windows PHP驱动发布 。但却并未被开源社区所接受,于是SQL Server团队又再次对其进行修改,以实现人们真正想要的功能 。
非常自然,该团队希望把修改后的代码反馈给开源社区 。据Serack表示,这意味着需要和微软法律团队进行多次沟通,才能获准共享该代码 。这个法律过程花费了数月时间,因为对微软来说,开源代码依然是一件比较新鲜的事情 。但并非微软自己才面临这种挑战,正如Serack所指出的那样,“每一个向开源社区共享代码的大公司都要经过类似的法律审批过程 。” 不管怎样,在去年的OSCON大会上,微软向Adobe和其它项目提交了代码 。Serack表示,“大约去年这个时候,微软开源软件实验室工作人员希望加速PHP在Windows上的开发 。”当时Pierre Joye有空闲时间,因此微软让他与Serack共同实现以下目标:在Windows上完善PHP 。 同时,Serack开始完善Windows PHP生成过程,重新为其编写脚本 。由于涉及到如此多其它项目,他不得不创建工具后又重建更多工具 。他表示,“我希望包含所有DLL 。”他创建了一个跟踪工具,来跟踪正在被创建的内容,并创建了全新的Visual Studio项目文件 。Serack欣慰的表示,“再也不需要make文件和定制批处理脚本了 。” 仅仅通过上述改进,核心解释器基准测试的速度与PHP在Linux上运行速度的差距就缩小到1%以内 。接下来,Serack创建了一个二进制工具,并通过它运行真实数据(也就是真正的PHP脚本),提供规范的数据给编译器 。配置文件导引优化(Profile-Guided Optimization,PGO)是Visual Studio最酷功能之一,这一点已经被.NET开发者朋友所证实 。这使其核心解释器的速度快了18%左右,而且未修改一行代码,只是修改了生成过程 。 完善生成过程并不是一件没有意义的任务 。让每一个模块使用相同且正确的设置被编译需要花点时间 。Serack表示,“如果一个库使用不同的优化,它就不正常了 。” 他表示,Joye还更换了一些老的程序库 。举例来说,POSIX正则表达式函数库已经有大约10年历史 。Serack表示,创建新版依赖库对性能有较大影响,但同时对可靠性也具有较大影响 。 现在并非说该任务已经完全完成 。所谓开源项目,或开发项目,就如同写长篇小说一样,编程永远不会完成,只有被放弃 。Serack表示,“我们还正在进行一些努力 。”举例来说,与Linux相比,Windows的文件系统实现有不同之处 。而且他承认,“在现实世界应用中,在性能方面我们还难言成功 。但是至少我们已经拥有了这个真正稳定的平台 。” 有人或许认为:“微软?开源?承诺?你一定是在开玩笑 。”Serack本人最初也不轻信这种态度 。实际上,微软在进行Windows上的PHP改进时,故意保持非常低调的态度 。Serack表示,“我们不想得罪别人,我们的目标是让PHP很好的运行在Windows上 。我们希望对PHP作出共享,而不是分裂它 。那是我们连想也不会想的事情 。我们通过共享代码来参与到社区中,而非控制社区 。” Serack的目标就是简单的让PHP更好的运行在Windows上 。他对开发者的反响感到激动,“太棒了!我已经拥有一个Windows服务器 。现在我不用再买一台来运行我的PHP应用了 。” Serack十分欢迎来自PHP社区的帮助和建议;他希望人们能够发表自己的观点,谈谈如何在Windows上更好运行PHP,尤其是欢迎开发者提出能够帮助跟踪问题和优化的意见 。他表示,“如果有错,让我们一起修改 。” Serack表示,“我们已经让人们做出选择,现在他们可以在Windows上部署PHP,并能够正常运行它们 。” |