PHP 是最流行的用于 web 开发的脚本语言之一。PHP 的最新版本,PHP 7 在性能上做了很大的优化。不过,PHP 还有一个竞争对手 HHVM (HipHop Virtual Machine) — 一个运行 PHP 代码的虚拟工具。二者直接的比较正在升温,那么让我们来看一下他们直接的性能对比吧。

什么是 HHVM?

在2008年,Facebook 启动了一项工作,计划开发一个工具 将 PHP 脚本转换成 C++,这样就可以被编译后在 web 服务器上运行。目的是节省服务器资源,这是一个很重要的目标,因为 Facebook 的用户量正在快速增长。从这个意义上讲,这个项目是成功的,因为它可以让服务器处理之前五到六倍的请求量。

时间回到2010年,Facebook 的服务器需求已经增加了很多,是时候考虑用新的创新来提升更大的效率。基于这个需求,Facebook 开发了 HHVM。

HHVM 使用了 Just-In-Time (JIT) 编译方式将 PHP 代码转换成某种字节码。接下来把字节码再转换成机器码并进行优化,让它尽可能快的运行。

什么是PHP 7?

PHP 7 是 PHP 社区对 HHVM 的回应。PHP 7 发布的预览版本号称比之前的 PHP 5 的性能要提升100%

你可能会问 PHP 的版本直接从 PHP5 跳到了 PHP7,答案是这样的:PHP6 的开发开始于2005年,但是它的进展过于缓慢又出现了很多的问题,这样 PHP6 在它还没有发布正式版本之前就有了不好的名声。所以PHP社区决定给这个语言的新版本直接命名为 PHP7。

真正的问题不是 PHP5 和 PHP7 之间的比较,因为已经很明显了 PHP7 提供了更快速的运行速度。但是我们想比较的是 PHP7 和 HHVM。很多专家已经分别使用了这两个方法来处理PHP代码,并且揭示了一些有趣的结论。

比较 PHP7 和 HHVM 的异同:

在回答哪个更好之前,让我们先来看一下他们之间的关键不同点和相似之处。

代码解析:

PHP7 和 HHVM 之间的基本不同之处在于他们解析 PHP 代码的方式。PHP7 使用标准的 PHP 解析器,它是一个可以给所有人使用的免费软件,可以在服务器上直接解析和运行。它生成 HTML 代码,然后发送给客户端,客户端显示出用户期望的内容。

相比之下,HHVM 首先把 PHP 代码转化为 HipHop 字节代码,这个代码再被翻译成机器码然后执行。在这个过程中 HHVM 会对代码进行优化,优化一些影响执行效率的 PHP 代码,目标是提高运行速度。

选择 PHP 7 的理由


  • PHP 7 在某些情况下比 HHVM 更快,包括运行 Drupal 8。
  • 使用 PHP 7 不需要安装设置 HHVM。
  • 尽管很多 PHP 4 的功能在新版本中不再支持,但用 PHP 5 写的代码在转换到 PHP 7 后将会如预期一样工作。
  • PHP 7 由 PHP 社区开发,这是一群开发稳定可靠 PHP 版本久负盛名的人。

HHVM vs. PHP 7: 作出你的选择

不要犹豫太久,Kinsta 建议那些在线的网站尽量在 PHP 7 与 HHVM 之间作出选择,早点开始实施解决方案,让你的网站性能得到优化。一个低效的网站也会让你的声誉受损,那将很难挽回。

相对于旧版本的 PHP,HHVM and PHP 7 都更有益。作出决定,尽快将你的网站切换到新的系统。

PHP 7 vs HHVM 比较的更多相关文章

  1. HHVM和Hack

    1. HHVM(http://hhvm.com)  全称是Hip Hop Virtual Machine,是一个PHP引擎. 2.Hack(http://hacklang.org) 一门新的服务器端语 ...

  2. hhvm之轻进程

    本文为原创,转载请注明:http://www.cnblogs.com/gistao/ 背景 我们在aws上部署了hhvm,高峰段发现cpu idle降的比较低,只有10-20%,而使用php-fpm的 ...

  3. hhvm的正确安装姿势 http://dl.hhvm.com 镜像

    hhvm是php的第三方运行环境,由facebook出品,基于该运行环境,它还提供了一种编程语言hack - PHP的静态类型版. 折腾了一天后,包括各种编译.配置.FQ,后面终于忍不住搜了一下 ht ...

  4. 在 Ubuntu 上配置高性能的 HHVM 环境

    HHVM全称为 HipHop Virtual Machine,它是一个开源虚拟机,用来运行由 Hack(一种编程语言)和 PHP 开发应用.HHVM 在保证了 PHP 程序员最关注的高灵活性的要求下, ...

  5. CentOS6.2 试用PHP HHVM

    关于HHVM的介绍 http://en.wikipedia.org/wiki/HipHop_Virtual_Machine http://www.hhvm.com/ https://github.co ...

  6. 转: HHVM at Baidu

    评注: 一个项目迁移的问题考虑与实现使用.非常之详细. 转:http://lamp.baidu.com/2014/11/04/hhvm-in-baidu/ 在这之前我们介绍了我们为什么要迁移PHP到H ...

  7. docker下PHP+Nginx+HHVM运行环境

    Dockerfile 准备开始,我们创建一个 Dockerfile —— Dockerfile 包含如何创建所需镜像的指令. FROM    centos:centos6MAINTAINER Mike ...

  8. HHVM 是如何提升 PHP 性能的?

    背景 HHVM 是 Facebook 开发的高性能 PHP 虚拟机,宣称比官方的快9倍,我很好奇,于是抽空简单了解了一下,并整理出这篇文章,希望能回答清楚两方面的问题: HHVM 到底靠谱么?是否可以 ...

  9. HHVM简介(译)

    原文链接:http://coderoncode.com/2013/07/24/introduction-hhvm.html “HHVM(HIpHop Virtual Machina)把PHP代码转换成 ...

随机推荐

  1. [MySQL5.6 新特性] 全局事务标示符(GTID)

    GTID的全称为 global transaction identifier  , 可以翻译为全局事务标示符,GTID在原始master上的事务提交时被创建.GTID需要在全局的主-备拓扑结构中保持唯 ...

  2. vs2008及以上的ActiveX测试容器在哪儿

    解压缩 vssetupdir \Samples\1033\VC2010Samples.zip ,位于C++\MFC\ole\TstCon\ vs2008中的sample的话,要改TCProps项目的L ...

  3. arcgis 10.2连接Oracle

  4. js预解析及特效

    预解析: // 作用域: // 域:空间.范围.区域…… // 作用:读.写 script 全局变量.全局函数 自上而下 函数 由里到外 {} 浏览器: “JS解析器” 1)“找一些东西” :var ...

  5. DHTMLX-Grid

    DHTMLX - Grid 介绍 dhtmlxGrid是一个灵活的.易于使用的JavaScript网格组件,可以创建DHTML表与丰富的编辑- sensing,固定的多行页眉和页脚,可调整大小的.可拖 ...

  6. 【总结】总结写了3个React页面后遇到的各种坑

    标签里用到<label for>的,for 要写成htmlFor 标签里的class要写成className 组件首字母一定要大写 单标签最后一定要闭合 如果html里要空格转义, 注意不 ...

  7. 拥抱高效、拥抱 Bugtags 之来自用户的声音(三)

    小编按:这是一篇 Bugtags 用户来稿,主要是介绍了使用 Bugtags 前后对测试及解决 Bug 所带来的变化,感谢山西农业大学 - 高正炎同学对 Bugtags 的信赖和支持.小编在这里诚邀各 ...

  8. #include <objsafe.h>//OCX控件在IE8浏览器下不能使用问题

    一.OCX控件开发常见的问题 1.OCX控件在IE8浏览器下不能使用问题 原因:IE8会拦截OCX控件的方法. 解决方法:在OCX控件开发时加入安全接口. (1)在有"Crtl"字 ...

  9. C++快速入门系列教程

    C++ 60分钟入门教程:http://see.xidian.edu.cn/cpp/biancheng/view/2755.html

  10. MySQL MEM_ROOT详细讲解

    这篇文章会详细解说MySQL中使用非常广泛的MEM_ROOT的结构体,同时省去debug部分的信息,仅分析正常情况下,mysql中使用MEM_ROOT来做内存分配的部分. 在具体分析之前我们先例举在该 ...