Phalcon 和 Laravel 的效率还是差很多的。

2016-07-21

一直很喜欢Laravel的项目结构设计,很喜欢它和rails的控制台工具。但是项目中一直在用Phalcon,无他,简单、熟悉了。而且,性能上确实非常非常好!

看了很多评测的,今天抽空自己做了一点点测试,看的结果更加直观:

环境:Mac、PHP7.0.8、Phalcon 2.1.0RC、Larave 5.2.40

程序:

Laravel使用默认环境,创建一个Index控制器,一个index方法,显示一行文字。使用optimize优化了。

Phalcon由于没有使用脚手架工具创建项目,自己手工搭建一下,主要就是创建路由、定义视图、挂载模板引擎(volt),将这些注入到di中,同样一个控制器,一个方法,显示同样的模板。

测试:ab -c 10 -n 1000 http://pails.xueron.com/ ,其中c是并发,n是请求总次数。调整两个参数,反复测试。

结果:

基本上laravel的rps(Requests per second)一直在25~40之间。一般为30多点。

而Phalcon的rps基本保持在500+,在500~650之间。

差太多啊~

 做了比较详细的测试:http://xwsoul.com/posts/1071,可以看到,效率主要差在stat/lstat/open/access这些文件的查找与打开上面了。看过Laravel的源码,在依赖注入的设计上面很精巧,但是也带来的问题,就是加载、反射、反复查找~, 效率牺牲的可不是一点半点。

所以打算做个小项目,就是为Phalcon弄一个简单的架子,什么di的服务、配置等等弄弄好,这样用phalcon建项目easy一点……

测试结果:

php-fpm运行larave的情况,可以看到时间耗用和CPU的占用都挺大:

ab测试结果:

下面是Phalcon的情况,好很多:

ab测试的结果: