大话系列

1. PHP性能问题

关于PHP,很多人的直观感觉是PHP是一种灵活的脚本语言,库类丰富,使用简单,安全,非常适合WEB开发,但性能低下。

从原理分析PHP的性能,主要从以下几个方面:内存管理、变量、函数、运行机制、网络模型来进行分析。内存管理:使用类似于Nginx的内存池。 变量、函数:使用hashtable进行查找。运行机制:先编译成中间码再执行,类似于java。网络模型:使用libevent。

分析:从上面分析来看,在基础的内存管理、变量、函数、运行机制、网络模型方面,PHP本身并不会存在明显的性能差异,但由于PHP的动态运行特性,决定了PHP和其他的编译型语言相比,所有的变量查找、函数运行等等都会多一些hash查找的CPU开销和额外的内存开销,至于这种开销具体有多大,可以通过后续的基准性能和对比分析得出。

因此,也可以大体看出PHP不太适合的一些场景:大量计算性任务、大数据量的运算、内存要求很严格的应用场景。如果要实现这些功能,也建议通过扩展的方式实现,然后再提供钩子函数给PHP调用。这样可以减低内部计算的变量、函数等系列开销。

PHP与C/C++的对比:在真实业务项目中,影响性能更多的不是说采用了什么语言,而是其业务相关的部分,比如说socket交互次数,比如说字符串处理,也比如说网络交互包大小。通测试可以看出,在一个业务模块中,影响最大的是socket数据交互,其次是大量的字符串处理。具体细分来说是以下几个因素:socket交互次数、socket交互包大小、socket交互响应时间、字符串处理。

结论:基于C语言实现的大部分业务系统都可以考虑迁移到PHP上来,一方面能够快速开发,另外一方面性能也不会存在问题。






發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章