Php 使用大数据集时,Zend View渲染速度较慢

Php 使用大数据集时,Zend View渲染速度较慢,php,zend-framework,Php,Zend Framework,Zend视图通常会立即渲染,但使用的数据集很大;1500个对象进入xml视图,需要2-3秒,这对于我的应用程序来说是不可接受的。任何建议都将不胜感激。600 KB可以或不能强制应用程序执行缓慢。执行时间取决于实际脚本、其持久层、从web到数据库服务器的连接以及其他方面。因此: 首先,以这样一种方式插入应用程序,即它计算服务器端脚本所花费的时间 例如,将index.php重命名为realoindex.php,并创建一个新的index.php,如下所示: $startTime = microtime

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

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

首先,以这样一种方式插入应用程序,即它计算服务器端脚本所花费的时间

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

$startTime = microtime(TRUE);

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

$endTime = microtime(TRUE);

echo '<hr />Time taken: ' . ( $endTime - $startTime ) . ' micros';
$startTime=microtime(真);
require_once(dirname(_FILE__)。'/realdex.php');
$endTime=微时间(真);
回显“
所用时间:”。($endTime-$startTime)。'微秒;
当然,这种方法是微不足道的,不适用于任何情况。然而,这是一个起点

尝试返回少量数据

通常,大量的数据项(无论是否为XML)表示糟糕的用户体验和技术设计

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

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

请注意,这不仅有助于用户,而且减少了数据量,如果数据库定义良好,您的数据库需要扫描和检索。例如,索引要搜索的属性并尝试在固定大小的表中保留记录等。

三件事:

  • 忘了分析吧。您已经确定它很慢,这并不奇怪-1500组数据就是很多数据
  • 添加分页!确定每页的最大项目数(限制),然后添加分页控件
  • 研究诸如memcache之类的缓存解决方案——尤其是在数据没有经常更新的情况下

  • 看起来其中一些问题已经在另一个答案中解决了。这一定意味着我们有了进展:-)

    您对此进行了分析吗?延迟是由于服务器端处理、数据的网络传输还是客户端渲染造成的?它是通过1500个对象的循环以及每个对象的打印输出。所以我认为服务器端处理,因为它是600kb的xml