Hiphop和Quercus的使用对比

Hiphopfacebook这个超级技术宅的作品,目的是希望通过将PHP编辑成可执行的二进制文件来加快PHP的效率,其实在平时中,大部分公司遇到的瓶颈是网络服务层的问题,如果一个后台服务不稳定,绝对比加快一点PHP的执行效率要狠的多,但对于facebook这种技术超级大的公司来说,解决任何细微的效率问题都可以使用户体验上升。

QuercusResin的开发商Caucho做的,新的Resin版本已经内置并开启了Quercus的支持,如果需要跑PHP,如果需要PHP调用JAVA,那Quercus是最好的选择,另外官方给出的benchmark来看,Quercus跑MediaWikiDrupal的效率要整整提升了四倍。而且PHP代码是无需编译的放到目录即可使用,当然如果你需要更快,也可以编译。整体的兼容性也比Hiphop要强很多。

Hiphop

PHP

  1. create_function无法使用,但支持PHP5.3的匿名函数
  2. 调用函数时传入类型需要保持一致
  3. Warning会导致无法运行
  4. global声明不能直接赋值
  5. 字符串多次连接会溢出,暂不知道次数或者长度范围?
  6. eval不能使用
  7. 不支持命名空间
  8. 类定义不能重复
  9. 类常量定义BUG

运行时

  1. 需要编译,修改需要重新编译
  2. 花费时间长而且不容易编译通过
  3. 不使用PHP engine,转换为C代码

服务器

  1. 主要用于集群,不适用于单台服务器,因为没有太大必要
  2. 可以降低50%的CPU ,官方数字
  3. 适用于计算密集型应用
  4. 自定义配置,几乎可以完成HTTP相关的所有配置

Quercus

PHP

  1. 不支持命名空间
  2. 不支持register_globals
  3. 支持直接调用JAVA对象

运行时

  1. 不需要编译,配置即可运行,修改立即生效
  2. 需要Resin,默认启用PHP支持
  3. 可直接调用JAVA
  4. DB操作需要另外装载mysql-connector库

服务器

  1. Resin原生,可自定义配置完善
  2. 运行效率提升4倍,官方数

写在后面

hiphop已经是2年前的产物了,各种问题会造成很少有人愿意在生产环境去尝试,facebook正在开发hhvm版本,希望可以改变这个问题和继续提高性能。

在文章中打问号的代表不确定,如果你有答案,请不吝赐教,谢谢。

Comments