首页 > php教程 > php手册 > 正文

PHP编译器:HipHop

php中文网
发布: 2016-06-06 19:51:04
原创
2234人浏览过

HipHop 是Facebook开发的一个PHP编译器项目. hiphop先把php代码转换成c++代码,让后使用c++编译器如gcc编译成目标机器码. HipHop用来提高Facebook服务器的使用效率. 目前,超过90%的Facebook网站流量经由HipHop编译的PHP代码处理. HipHop还把一系列PHP脚本代码

HipHop 是Facebook开发的一个PHP编译器项目.

hiphop先把php代码转换成c++代码,让后使用c++编译器如gcc编译成目标机器码.

HipHop用来提高Facebook服务器的使用效率. 目前,超过90%的Facebook网站流量经由HipHop编译的PHP代码处理.

HipHop还把一系列PHP脚本代码编译成了多线程WEB服务器, 这样, 编译后的PHP代码不仅运行更快, 同时也更好的利用了系统内存.

多线程WEB服务器使用更少的内存, 因为它使用单个内存池来处理所有并发请求. 这和多进程WEB服务器(如Apache的Pre-Fork模式)有显著的不同.

目前绝大多数PHP WEB服务器都是多进程模式,在这种模式下,每个请求会被不同的系统进程处理。每个进程拥有自己的内存池。


多进程模式的主要问题是,如果一个进程占用了大量内存,在该进程退出之前,这些内存无法返回到系统中,即使该进程处理的后续请求并不需要这么多的内存,而多余的内存空间不能被利用来处理其他的并发请求。


立即学习PHP免费学习笔记(深入)”;

Apache设计上可以在一定时间内强制关闭某个进程,从而内存得以循环使用。不过进程退出前总会有内存浪费的情况存在。

内存使用情况对于大型网站而言至关重要,因为它决定了WEB服务器能够处理的并发请求数。

比如,如果你有一个1GB内存的WEB服务器,每个PHP请求占用10MB,那么理论上能够同时处理的并发请求数为100。

如果同时运行的应用程序使用的内存超出了可用的物理内存,操作系统会启用虚拟内存,把物理内存中的部分内存块置换到磁盘的虚拟内存区,这样系统性能将迅速下降。

Ghostwriter
Ghostwriter

Replit推出的AI编程助手,一个强大的IDE,编译器和解释器。

Ghostwriter 238
查看详情 Ghostwriter


立即学习PHP免费学习笔记(深入)”;

过量的并发请求会让服务器瘫痪,即导致所谓的DOS(服务拒绝)。对于Apache,你可以使用配置项MaxClients来限定并发访问数,这样超出限定的请求将进入服务队列,从而避免服务器瘫痪。不过这意味着部分请求会被延迟处理甚至会被忽略。

多线程还是多进程模式实际上之前已经有过讨论:use of multi-threaded Web servers for handling high traffic. 注意这篇文章只推荐使用多线程WEB服务器来处理静态文件如图片,CSS和Javascript。

HipHop一个新的方面是Facebook工程师把PHP扩展转换成了线程安全的代码。


立即学习PHP免费学习笔记(深入)”;

这里顺便提一下还有一些非机器码PHP编译器,比如编译成Java字节码的Quercus 和 Project Zero, 或者编译成.NET assemblies 的Phalanger。



相关标签:
PHP速学教程(入门到精通)
PHP速学教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号