PHP编译器:HipHop
来源:互联网 发布:it风云人物 编辑:程序博客网 时间:2024/04/28 06:02
HipHop 是Facebook开发的一个PHP编译器项目.
HipHop还把一系列PHP脚本代码编译成了多线程WEB服务器, 这样, 编译后的PHP代码不仅运行更快, 同时也更好的利用了系统内存.
内存使用情况对于大型网站而言至关重要,因为它决定了WEB服务器能够处理的并发请求数。
多线程还是多进程模式实际上之前已经有过讨论:use of multi-threaded Web servers for handling high traffic. 注意这篇文章只推荐使用多线程WEB服务器来处理静态文件如图片,CSS和Javascript。
HipHop先把PHP代码转换成C++代码,让后使用C++编译器如GCC编译成目标机器码.
HipHop用来提高Facebook服务器的使用效率. 目前,超过90%的Facebook网站流量经由HipHop编译的PHP代码处理.HipHop还把一系列PHP脚本代码编译成了多线程WEB服务器, 这样, 编译后的PHP代码不仅运行更快, 同时也更好的利用了系统内存.
多线程WEB服务器使用更少的内存, 因为它使用单个内存池来处理所有并发请求. 这和多进程WEB服务器(如Apache的Pre-Fork模式)有显著的不同.
目前绝大多数PHP WEB服务器都是多进程模式,在这种模式下,每个请求会被不同的系统进程处理。每个进程拥有自己的内存池。
多进程模式的主要问题是,如果一个进程占用了大量内存,在该进程退出之前,这些内存无法返回到系统中,即使该进程处理的后续请求并不需要这么多的内存,而多余的内存空间不能被利用来处理其他的并发请求。
内存使用情况对于大型网站而言至关重要,因为它决定了WEB服务器能够处理的并发请求数。
比如,如果你有一个1GB内存的WEB服务器,每个PHP请求占用10MB,那么理论上能够同时处理的并发请求数为100。
如果同时运行的应用程序使用的内存超出了可用的物理内存,操作系统会启用虚拟内存,把物理内存中的部分内存块置换到磁盘的虚拟内存区,这样系统性能将迅速下降。
多线程还是多进程模式实际上之前已经有过讨论:use of multi-threaded Web servers for handling high traffic. 注意这篇文章只推荐使用多线程WEB服务器来处理静态文件如图片,CSS和Javascript。
HipHop一个新的方面是Facebook工程师把PHP扩展转换成了线程安全的代码。
这里顺便提一下还有一些非机器码PHP编译器,比如编译成Java字节码的Quercus 和 Project Zero, 或者编译成.NET assemblies 的Phalanger。
- PHP编译器:HipHop
- 初次体验hiphop-php
- HipHop For PHP
- HipHop--php转换C++
- HipHop php :PhP 转 C++
- facebook之HipHop For PHP
- HipHop
- HipHop
- Ubuntu Server 11.10 安装 Hiphop-php
- Facebook揭秘HipHop项目 PHP程序大提速
- (转)PHP HipHop实战之安装篇
- Facebook开源项目Hiphop-php使用介绍(原创)
- PHP之父评价Facebook的HipHop项目
- Facebook揭秘HipHop项目 PHP程序大提速
- PHP之父评价Facebook的HipHop项目
- Facebook揭秘HipHop项目 PHP程序大提速
- 使用nginx做为hiphop-php的前端服务器
- 从HipHop到HHVM如何优化PHP本身性能
- 总结
- rac 碰到 gc buffer busy
- Oracle 数据库备份
- 实现表格的隔行换色效果
- C#多线程编程介绍——使用thread、threadpool、timer
- PHP编译器:HipHop
- “放下屠刀,立地成佛”
- size expression for do_hypervisor_callback does not evaluate to a constant
- php+mysql注入
- 环境搭建
- Ubuntu下设置环境变量及PATH的方法
- RubyChina源代码研究笔记:Rails3+Mongodb: 如何在Rails项目中整合Mongodb
- hibernate的小问题
- conky 一点桌面 就消失