最近在开发一个东西,起步阶段,由于为了自己开发方便,想选择一个MVC的框架,经过筛选,选择了Zenf Framework,但是经过开发和测试发现,ZF的执行效率令我感觉很不爽,总是执行的肉肉的不是很犀利,而且自己的应用实时性比较强,又不能够轻易用缓存,所以打算弃框架而纯开发。
此外,自己也搜集了一些ZF的执行效率的评测,总结如下:
1、周帆同学做的评测:
首先新建了一个10字段的table,分别用原生的mysql_query和Zend_Db::insert循环插入1000条数据。
mysql_query 平均耗时0.3秒左右,Zend平均耗时1.5秒,性能相差5倍以上。
然后再取出之前插入的1000条数据
mysql_query平均耗时0.01秒,Zend平均耗时0.02秒,性能相差一倍多。
由以上测试可以看到Zend对Db封装后对性能的损耗是相当大的,并不是很适合并发量很高的互联网应用。
或许Zend本身有更好的机制去提高执行效率,欢迎交流。
2、不知哪位同学做的几乎流行框架的测试,网上转载很多:
优点:
1. 官方出品,自带了非常多的 library,框架本身使用了很多设计模式来编写,架构上很优雅,执行效率中等;MVC设计中,比较简洁,具有路由功能,配置文件比较强大(能够处理 XML和php INI),各种 library 很强大,是所有PHP框架中各种功能最全面的,包括它不仅是一个框架,更是一个大类库(取代PEAR),这是它的主要特色;能够直观的支持除数据库操作之 外的Model层(比 CodeIgniter 和 CakePHP 强),并且能够很轻易的使用Loader功能加载其他新增加的Class;Cache功能很强大,从前端Cache到后端Cache都支持,后端 Cache支持Memcache、APC、SQLite、文件等等方式;数据库操作功能很强大,支持各种驱动(适配器)
2. 文档很全,在国内社区很成熟,并且目前不少Web 2.0网站在使用,学习成本中等
缺点:
1. MVC功能完成比较弱,View层简单实现(跟没实现一样),无法很强大的控制前端页面
2. 没有自动化脚本,创建一个应用,包括入口文件,全部必须自己手工构建,入门成本高
3. Zend Framework 作为一个中型应用框架问题不大,也能够勉强作为大型应用的框架,但是作为一个很成熟的大型PHP框架来说,还需要一些努力
评价:
作 为官方出品的框架,Zend Framework的野心是可以预见的,想把其他框架挤走,同时封装很多强大的类库,能够提供一站式的框架服务,并且他们的开发团队很强大,完全足够有能 力开发很强大的产品出来,所以基本可以确定的是Zend Framework前途无量,如果花费更多的时间去完善框架。同样的,Zend Framework架构本身也是比较优雅的,说明Zend官方是有很多高手的,设计理念上比较先进,虽然有一些功能实现的不够完善,比如View层,自动 化脚本等等,这些都有赖于未来的升级。总体来说Zend Framework是最值得期待的框架,当然,你目前要投入你的项目中使用也是完全没问题的。
3、Emeric.Li 做的测试更加详细,摘要一下:
1、ZF的典型环境初始化的基本消耗还是比较大的,测试代码的最终结果仅仅是使用的ZF标准MVC架构输出了一个Hello,我们可以看到,它的PCT到 了300ms,在高负载测试中,更是使TFB达到了5000ms。我个人认为可以接受的框架初始消耗的PCT应该在150ms以下,所以对高负载WEB应 用使用ZF必须非常慎重。
2、对比低负载测试和高负载测试我们可以发现,TFB会因为负载的提高而明显增加,而随着代码复杂程度的提高,差距越来越大,最高到了382:5054
3、对比低负载测试和高负载测试我们可以发现,在简单代码情况下,“低负载”的CT结果反而会高于“高负载”的结果,我推测这应该是由于Apache或者 FastCGI的缓存机制造成;随着代码复杂程度的提高,高负载时服务器的的TFB明显提高,这一现象也被冲淡了。
4、TFB是衡量网页对客户端响应速度的重要指标,我们可以发现,低负载测试结果中的TFB基本都等于相应的PCT + 80ms,这多出来的80ms应该就是Aapche+php的页面环境初始化所消耗的是时间,而这一时间是发生在PHP以外的,所以PHP自身是无法计时 和统计到这一时间的。





这个。。太专业了。我就看看。
@iamlukas
哎 浪费了好多时间 最后还是放弃
比较过其它框架吗?抛弃框架开发,效率太低。
@kometo
是啊 却是效率低 低的不得了
hey whats your myspace page.
国内有一个叫 think php 的
你应该试试
@doff
仔细看了一下 没敢用