HHVM与php-fpm

先了解一下什么是fastCGI

Php是一门后端脚本语言,与go语言不同,其自身不提供web功能,要实现web应用,需要借助web服务器。由此引出cgi的概念

先看看什么是cgi(Common Gateway Interface):

早期的web服务器只处理html等静态文件,但像php等动态语言出现后,webserver处理不了了,就交给php解析器处理。但php解释器如何与web服务器通信呢?Cgi协议的出现,就是为了解决不同语言解释器(如php,python)与web服务器的通信。

简单的说,cgi是用来和web服务器打交道的,web服务器收到用户请求,就会把请求提交给cgi程序,cgi程序(php-fpm,hhvm)根据请求提交的参数作相应处理(解析php),然后将输出返回给web服务器,再返回给客户端。

cgi的改进->fastcgi:

cgi有个弊端,每次web请求,都会重新fork一个cgi进程,结束再kill掉,资源消耗大,不适合高并发。

于是fastcig就应运而生了。它事先早已启动好,一直运行等待web请求过来,再交给php解析,并将结果返回web服务器,继续等待下一个请求。

什么是HHVM、php-fpm

php-fpm和hhvm都是fastCGI协议的一种实现

Php-fpm:

php-Fastcgi Process Manage,是php的fastCGI实现,并提供了进程管理的功能。进程包含 master 进程和 worker 进程两种进程。master 进程只有一个,负责监听端口,接收来自 Web Server 的请求,而 worker 进程则一般有多个(具体数量根据实际需要配置),每个进程内部都嵌入了一个 PHP 解释器,是 PHP 代码真正执行的地方。

HHVM:

是Facebook开源的PHP执行引擎,可支持cli,fastcgi server(相当于php-fpm),http server(相当于nginx+phpfpm)三种运行方式。它将php转换为c++,再编译为二进制文件运行,所以性能更好。

二者的区别:

相比php5.2,hhvm性能更高,更省cpu,据说能省40%-60%

但php7出来后,据说可以替代hhvm

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
HHVM即HipHop Virtual Machine,目前是3.0版本,出自Facebook,它先将PHP和Hack程序编译为中间字节码,然后通过just-in-time (JIT)编译器将字节码动态翻译为x64机器代码,应用上了非常多的编译优化技术。       JIT就是HHVM高效率的所在,所谓字节码:是一种人类无法阅读的代码,专门用来给编译器高效执行的。当HHVM首次加载项目时,它会将所有的PHP代码转换成字节码;字节码的生成是与平台无关的。       机器码是一系列供CPU执行的指令。用过汇编的都应该清楚机器码,估计没人喜欢用汇编编程。通过编译器就可以把汇编转成机器码,然后供CPU处理。JIT(即时)编译器是指在运行时才会去编译字节码。字节码会存放在内存中,然后JIT编译器会根据需要加载并编译所涉的字节码。       通过以上技术,HipHop和HHVM获得了性能的提升。据官方介绍,与PHP 5.2引擎 APC相比,HHVM可以处理的Web请求吞吐量增加了9倍,而内存消耗减少了5倍。实际上HHVM之前有朋友留言提起过它,亲自测试过后发现HHVM在提升PHP处理速度上非常有优势,非常适合大型的网站。       最近,HHVM已经更新到了3.0版本,HHVM几乎已经完全支持PHP 5.5了,但还是有不少bug,所以不是所有应用程序都可以运行。因此,Facebook准备让最流行的20个开源PHP项目能够运行在HHVM上。第一个已经支持的项目就是Wordpress。不过对于国内的Discuz兼容还不太完美。        除了开发出 HHVM 的 FaceBook 公司外,还有很多其他公司也采用了这个方案,在服务器上用 HHVM 运行 PHP 应用,包括 Wikimedia 和电子商务网站 Etsy。Wikimedia:Wikimedia 拥有大量的教育内容,包括著名的在线百科全书维基百科。维基百科每 个月吸引着近五亿的互联网用户,为了满足这样高级的需求,需要优化服务器的性能,和 PHP相比 HHVM 有一个显著的优点,它可以同时加载多个 SPU 核心, 而 PHP 是单线程语言,不能被并行化。维基百科部署了 HHVM 后,CPU 的负载从50%降到了10%,用户提交编辑时的平均响应时间减少到原来的一半,页面的平均加载时间从原来的1.3秒降到了0.9秒。
 Etsy: 拥有五千四百万用户的 Tesy 同样迫切需要提高服务器性能,Etsy 的工程师对比了HHVM 和 PHP5.4 的性能,发现 HHVM 每秒可以处理280个服务器请求,而对于 PHP5.4,如果每秒的请求数超过了190次,服务器的响应时间就会急剧增加。
官网地址是:http://hhvm.com/ (不过国内无法访问) 标签:facebook开源

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值