百度空间 | 百度首页 
 
查看文章
 
使用Java虚拟机运行PHP
2009-08-06 23:38

自从Google app支持Java之后,就有若干发烧友采用越狱方案把自己的Web应用放到Google上。第一时间,我也试图在Google上放个博客,采用的方案就是Quercus(后来,因为发现写那玩意儿必须安装Eclipse,我的机器运行这玩意儿太凑合,于是就放弃了)。

             几个月后的今天,作为PHPe的老会员偶尔回去看看,居然发现PHPe也在采用 Quercus 运行 PHPWind的方案了,惊奇啊!!!同时,同事现在也准备利用Java越狱Google,于是重新看了看Quercus。本人对 Quercus 了解的不多,而且也比较孤陋寡闻,平常看看小说练练级,感觉已经差不成山人一个了。况且,我对Resin过敏,向来都是以Tomcat为中心的,估计 Quercus 特性也未必能完全发挥。不过至少有一点,我特别 喜欢,采用 Quercus 的话,给PHP 写扩展实在是太方便了,而且还支持PHP、Java混写,真是爽死了(虽然不是一个好习惯)。

           从性能上讲, Quercus 真的比 C版的PHP快很多,4倍的性能提升真的不是盖的。

           我做了如下一个测试:

                     CPU: Intel Pentium D 2.8G
RAM: 2.5G(DDR 533)
OS: Windows XP SP2
PHP全套: Apache 2.2 + PHP5.26
Java全套: Sun Java VM 1.6 update 14     Tomcat 6.0.18     Quercus3.21
测试代码: CodeIgniter_1.7.1 默认页面

Java版配置:
拷贝Quercus WEB-INF/lib 下的 3 个jar文件到 Tomcat 根目录下的 lib 下,并修改 Tomcat conf 下的 web.xml ,让Quercus 全局范围内拦截所有 *.php 的请求,其它均默认。
PHP环境,开GD、MySQL扩展

Quercus ab结果:

         Native PHP 测试结果:

            结论:
Quercus 运行 PHP ,在执行复杂程序时,性能远超原生的PHP(上面可以看到几乎是 8 倍)。直接看CodeIgnitor 下的Bench时间, Quercus 页面执行时间小于 0.016 秒,原生PHP + Apache 的组合 执行时间均大于 0.035秒。难怪wiki.php.net 上,很多项目都想着从Zend上越狱!Zend这个解析器,确实是太慢了!

            附加说明:
Quercus 只进行简单的函数bench确实有可能不如原生的PHP(同事的测试证明)。
内存占用率,原生PHP + Apache ,httpd进程约占用 61M;Quercus 下 Tomcat 约占用 70M 内存
CPU利用率,两者均达到90 ~ 95 % (Windows 任务管理器)
Native PHP 安装 eAccelerator 之后,对复杂应用程序一般有明显的提高。但同时, Quercus 也没有开启编译(Tomcat上,一旦开启,控制台会出现大量的异常,提示找不到包,估计那些包只有Resin有吧),另外Sun 的VM性能也不怎么样,换Oracle JRocket 也会有明显的性能提升。
                  

            未测试部分:
Quercus 下PHP的数据库的性能是否会提高(但通常来说,Java数据库操作性能、文件IO性能均高于原生PHP,相信 Quercus 在这部分也会高于原生PHP,但仍待验证)

==================================================================================

尝试了一下连库(MySQL),性能也很强劲!唯一不爽的是,一旦程序使用了某些加密方式(例如phpMyAdmin),就会报:

java.lang.RuntimeException: java.security.InvalidKeyException: Illegal key size 的异常

google了一下,貌似是JDK不支持这种加密方式,貌似下载第三方的jar可以解决这个问题

类别:默认分类 | 添加到搜藏 | 浏览() | 评论 (3)
 
最近读者:
 
网友评论:
1
2009-08-07 02:34 | 回复
你总算开始弄Resin了……你能解释我当时为啥装Resin出那么多错误么……
 
2
2009-08-07 09:37 | 回复
回复ayanamist:
我还是 Tomcat 流
 
3
2009-08-07 10:54 | 回复
好文,。。细看一下子
 
发表评论:
姓 名:
网址或邮箱: (选填)
内 容:
验证码: 请点击后输入四位验证码,字母不区分大小写
      

     

©2009 Baidu