一、前提:PHP转化为C是优化的一个方向,也是终极目标。
PHP优化的终极目标是PHP转化成C/C++,从而编译成二进制应用程序。这个最终的提升效果在30%上下,但也要看具体的应用而定,如果都是IO开销,性能提升会更小。 PHP优化是目标,但不是说目前PHP的性能非常差。其实PHP综合性能还是很好的,这也是我们为什么选择PHP的原因。比如说,目前我们的C版本的UI程序,性能也在600-800QPS,但目前我们的PHP UI性能也能打到600+。
二、我们是否将CI完全C语言化?
目前可做的优化工作有几个方面:1、PHP语言上的优化 + opcode cache,比如说使用技巧。2、扩展。部分通用的处理采用扩展来实现。3、编译优化。
其实通过前面两个优化,在PHP方面的性能已经接近于传统的C/C++的UI了(但不是说PHP性能接近C了,主要是C/C++代码优化比较难、成本高。所以性能有下降)。
CI框架完全扩展化,其实就是我们之前提高的优化的第二步骤:扩展。这个层次的优化有一定的提升,但未必是性价比合适的。应该扩展一个完整的框架,性能提升不会特别明显,估计在10%上下。但开发维护成本会比较高。 所以,不建议把CI框架转化成C的扩展。因为一般来说框架很难带来性能瓶颈。 但我们是否能克服这歌瓶颈?
三、关于CI未来的考虑。
总之,我的观点是首先考虑opcode cache和PHP语言使用上的优化,然后适当的考虑扩展化。一般来说,PHP优化做到这里就差不多了。最后,如果有极限性能要求的,可以考虑编译优化(这个需要持续投入,类似facebook)。 |