HHVM

HHVM (HipHop Virtual Machine)会将PHP代码转换成高级别的字节码(通常称为中间语言)。然后在运行时通过即时(JIT)编译器将这些字节码转换为x64的机器码。在这些方面,HHVM十分类似与C#的CLR和Java的JVM

HHVM (HipHop Virtual Machine)会将PHP代码转换成高级别的字节码(通常称为中间语言)。然后在运行时通过即时(JIT)编译器将这些字节码转换为x64的机器码。在这些方面,HHVM十分类似与C#的CLR和Java的JVM。
  历史
  早在2008年Facebook就开始使用HipHop(现在成为HPHP),这是一种PHP执行引擎;最初是为了将Fackbook的大量PHP代码转成C++,以提高性能和节约资源。最初的版本成为HPHPc,是一个PHP到C++的编译器。
  之后的两年里,Fackbook又向HipHop中增加了HPHPi和HPHPd,HPHPi其实就是开发版的HPHP,HPHPd则是HipHop的调试器。通过HPHPd开发人员可以单步调试运行在HipHop平台上的PHP代码。
  使用HipHop的PHP代码在性能上最大可以是原生的6倍。但是,第一版的HipHop有不少缺点,具体如下:
  HPHPc 无法完全支持PHP的所有特性,最典型的是无法支持create_function()和eval()两个函数。但老实说,不支持后一个函数我不觉得是件坏事。
  Facebook的开发者不得不维护两种不同的引擎(HPHPc和HPHPi),这直接导致了重复劳动和资源浪费。
  最后,HPHPc部署步骤繁杂,这点很让PHP开发者头疼。.
  在2010年初,Fackbook因为这些问题做出了2个重大的决定。首先是将HipHop平台开源,通过这种方式来加快HipHop的发展。
  其次,Facebook开始开发HipHop的更高版本,也就是HHVM(HipHop虚拟机),HHVM加强了HPHPc的健壮性,同时还修复了许多重要错误。
  HHVM是在HPHPc的基础上构建,它会将PHP代码转换成高级别的字节码(一种中间语言),在运行时即时(JIT)编译器会将这些字节码翻译成机器码。
  下面是一些关于字节码、机器码和即时(JIT)编译器的概念,快速的浏览以下概念,可以清楚这些概念在HHVM所处的角色。
  字节码:是一种人类无法阅读的代码,专门用来给编译器高效执行的。当HHVM首次加载项目时,它会将所有的PHP代码转换成字节码;字节码的生成是与平台无关的。
  机器码:是一系列供CPU执行的指令。用过汇编的都应该清楚机器码,估计没人喜欢用汇编编程。通过编译器就可以把汇编转成机器码,然后供CPU处理。
  JIT(即时)编译器:即时编译是种软件优化技术,指在运行时才会去编译字节码。字节码会存放在内存中,然后JIT编译器会根据需要加载并编译所涉的字节码。
  通过以上技术,HipHop和HHVM获得了性能的提升。
  最近,HHVM几乎已经完全支持PHP 5.4了,但还是有不少bug,所以不是所有应用程序都可以运行。因此,Facebook准备让最流行的20个开源PHP项目能够运行在HHVM上。第一个已经支持的项目就是Wordpress。

时间: 2024-08-09 02:40:41

HHVM的相关文章

【问底】徐汉彬:PHP7和HHVM的性能之争

摘要:近日,PHP7和HHVM的性能之争成为了一个讨论热点,但毫无疑问,它们都在提升PHP执行性能方面取得了突破性的进展.本期<问底>,徐汉彬将为大家科普和介绍它们的性能之争. [导读]徐汉彬曾在阿里巴巴和腾讯从事4年多的技术研发工作,负责过日请求量过亿的Web系统升级与重构,目前在小满科技创业,从事SaaS服务技术建设.最近,PHP7和HHVM的性能之争成为了一个讨论热点,它们都在提升PHP执行性能方面取得了突破性的进展.这篇文章,参考了两个社区的技术新进展,为大家科普和介绍它们的性能之争.

HHvm建站环境搭建方法:Nginx,Mariadb,hhvm及lnmp/lamp安装部署 | 免费资源部落

HHvm建站环境搭建方法:Nginx,Mariadb,hhvm及lnmp/lamp安装部署 | 免费资源部落 nginx对redis取数据的不同方式 - 守望

HHVM,高性能的PHP执行引擎

HHVM (HipHop Virtual Machine) 是 Facebook 开源的 PHP 执行引擎. HHVM 采用一种JIT(just-in-time)的编译机制实现了高性能,同时又保持对 PHP 语法的充分支持. 在 Facebook 实际应用场景中,与 Zend PHP 5.2 引擎 + APC 相比,HHVM 实现了9倍的吞吐量提升和5倍的内存节约.HHVM 可以作为一个独立的 webserver 运行,也可以提供 fastcgi 接口,挂在 webserver 下面.官方博客:

【问底】徐汉彬:PHP7和HHVM的性能之争 (真是学到了很多)

来源:http://www.csdn.net/article/2014-12-25/2823234 作者:徐汉彬 摘要:近日,PHP7和HHVM的性能之争成为了一个讨论热点,但毫无疑问,它们都在提升PHP执行性能方面取得了突破性的进展.本期<问底>,徐汉彬将为大家科普和介绍它们的性能之争. [导读]徐汉彬曾在阿里巴巴和腾讯从事4年多的技术研发工作,负责过日请求量过亿的Web系统升级与重构,目前在小满科技创业,从事SaaS服务技术建设.最近,PHP7和HHVM的性能之争成为了一个讨论热点,它们都

HHVM 3.0 发布,执行 PHP 的虚拟机

HHVM 详细介绍 HipHop VM(HHVM)是Facebook推出的用来执行PHP代码的虚拟机,它是一个PHP的JIT(Just-In- Time)编译器,同时具有产生快速代码和即时编译的优点. Facebook表示,HHVM将替代HPHPi,用于所有的PHP执行.根据 Facebook透漏,HHVM在速度方面获得了显著改进,比目前使用的PHP解释器快60%,而使用内存减少90%. Facebook于12年十二月初发布了一个博文,宣布他们的解释型PHP运行环境HHVM(HipHop VM)

PHP 7 vs HHVM

什么是 HHVM? 在2008年,Facebook 启动了一项工作,计划开发一个工具 将 PHP 脚本转换成 C++,这样就可以被编译后在 web 服务器上运行.目的是节省服务器资源,这是一个很重要的目标,因为 Facebook 的用户量正在快速增长.从这个意义上讲,这个项目是成功的,因为它可以让服务器处理之前五到六倍的请求量. 时间回到2010年,Facebook 的服务器需求已经增加了很多,是时候考虑用新的创新来提升更大的效率.基于这个需求,Facebook 开发了 HHVM. HHVM 使

CentOS 6.5 安装 HHVM

安装: yum -y install http://ftp.riken.jp/Linux/fedora/epel/6/i386/epel-release-6-8.noarch.rpm cd /etc/yum.repos.d wget http://www.hop5.in/yum/el6/hop5.repo yum clean all yum install hhvm 可能遇到的问题: 1.hhvm: error while loading shared libraries: liblcms2.s

HHVM的全称是&quot;HipHop for PHP&quot;,开放源代码。采用PHP许可证授权!

http://hhvm.com/ https://github.com/xgqfrms/hhvm 什么是HHVM高性能服务器? HHVM是由Facebook公司出品的高性能开源服务器,用来执行hack编程语言或者php编程语言. HHVM借由将 PHP 程式码编译为字节码 ,使其可运行于虚拟机器的环境,也可以利用客制的机器码.当前Facebook的PHP程式皆运行在HHVM上. HHVM runs much of the world’s existing PHP. Developers and

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

HHVM全称为 HipHop Virtual Machine,它是一个开源虚拟机,用来运行由 Hack(一种编程语言)和 PHP 开发应用.HHVM 在保证了 PHP 程序员最关注的高灵活性的要求下,通过使用最新的编译方式来取得了非凡的性能.到目前为止,相对于 PHP + APC (Alternative PHP Cache) ,HHVM 为 FaceBook 在 HTTP 请求的吞吐量上提高了9倍的性能,在内存的占用上,减少了5倍左右的内存占用. 同时,HHVM 也可以与基于 FastCGI