Posts Tagged ‘效率’

ZendFramework DB类库性能效率浅谈

在以往的开发中,我一直不太关注的程序运行效率的问题,但工作后不得不在开发中注意这些细节,需要采用一些新的技术或类库时,往往会亲自写一段测试代码来比较和原生代码的运行效率,用数据说话。

ZendFramework,相信广大PHPer都非常熟悉,即使没有用过,但至少听过ZF的大名(我姓名的缩写也是ZF,HOHO),在公司的前一个项目中,应需求使用了ZF来作为开发框架,对ZF的使用有了一些基本的了解,因此在接下来的项目中也有使用ZF的打算,但由于ZF库本身的体积过大,但类库之间的耦合性又比较低,因此打算只使用其中的DB库来实现数据库的操作。

在之前的开发中发现Zend_DB fetch返回的结果并不是常用的array,而是一个巨大的包括详细表、字段结构的object,因此对其性能一直抱怀疑的态度,在这次新项目上马之前,对其简单的做了性能测试。

首先新建了一个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本身有更好的机制去提高执行效率,欢迎交流。