使用大数据集,Zend View渲染速度很慢

时间:2012-09-08 21:43:30

标签: php zend-framework

Zend视图通常会立即呈现,但具有大型数据集; 1500个对象进入xml视图,需要2-3秒,这对我的应用来说是不可接受的。任何建议都将不胜感激。

2 个答案:

答案 0 :(得分:3)

600 KB可以或不可以强制应用程序执行缓慢。执行时间取决于实际脚本,其持久层,从Web到数据库服务器的连接以及更多方面。因此:

首先,以这样的方式检测您的应用程序,计算服务器端脚本所需的时间

例如,将index.php重命名为realIndex.php并创建一个新的index.php,如下所示:

$startTime = microtime(TRUE);

require_once( dirname( __FILE__ ) . '/realIndex.php' );

$endTime = microtime(TRUE);

echo '<hr />Time taken: ' . ( $endTime - $startTime ) . ' micros';

当然,这种方法很简单,并不适用于每种情况。然而,这是一个起点。

尝试返回少量数据

通常,大量的数据项 - 无论是否为XML - 都表达了糟糕的用户体验和技术设计

因此,我建议在服务器端处理尽可能多的数据,并将精简数据集返回给客户端。不要忘记:在检索和处理数据时,数据库系统或多或少总是比脚本快。

由于用户无法在心理上理解1500项网页中的所有数据,因此我建议对结果视图的数据进行分页。检索大数据集的1/10并提供导航控制以转到上一页或下一页。

请注意,这不仅可以帮助用户,还可以减少数据量,数据库需要扫描和检索 - 如果数据库定义得当。例如。索引要搜索的属性并尝试将记录保存在固定大小的表中等...

答案 1 :(得分:0)

三件事:

  1. 忘记分析。你已经确定它很慢,这并不奇怪 - 1500套数据是很多数据!
  2. 添加分页!确定每页的最大项目数(限制),然后添加分页控件。
  3. 查看缓存解决方案,例如memcache - 特别是如果数据不经常更新。
  4. 看起来这些项目中的一些已在另一个答案中得到解决。必须意味着我们要做的事情: - )