PHP和Java比最大的优势是什么?
简单高效,PHP在请求完成之后会释放所有资源和内存,无须担心内存泄漏。代码的质量无论高低一样运行的很流畅。
但同时这也是PHP致命的缺点。一旦请求数量上升,并发很高的时候,快速创建资源,又马上释放,使得PHP程序运行效率急剧下降。另外一旦项目的功能的越来越复杂,代码增多后,对于PHP也会是灾难。这也是PHP的框架为什么没有被PHP程序员广泛接受,而Java不存在这个问题。再好的框架也会被这种低效的方式拖累,导致系统变慢。
所以想到了使用PHP来开发PHP的应用服务器,让PHP的代码加载到内存后,拥有更长的生命周期,这样建立的数据库连接和其他大的对象,不被释放。每次请求只需要处理很少的代码,而这些代码只在第一次运行时,被PHP解析器编译,驻留内存。以后都是直接载入OPCODE,让Zend引擎直接运行。另外,之前PHP不能实现的,数据库连接池,缓存连接池都可以实现。系统的运行效率会大大提高。
经过一段时间研究,目前已经初步得到实现。使用PHP本身编写出HTTP服务器,以独立服务器方式运行,单个程序页面(有对象生成,数据库连接、smarty模板操作)的执行时间由原来的0.0x秒,下降到0.00x秒。使用Apache AB并发100测试。比传统LAMP方式,Request per Second高出至少10倍。在我的测试机上(Ubuntu10.04 Inter Core E5300 +2G内存),Apache只跑到 83RPS。SwooleServer可以跑到1150多RPS。
http://www.iteye.com/news/21255-swoole-php-framework
感谢你的支持!
目前已经初步实现了原型,在测试环境下,运行稳定。
已经解决了内存泄露的问题,基本上实现了PHP的所有功能,GET,POST请求,form-data文件上传,COOKIE和SESSION。
理论上是行得通的,我会持续做下去。
