Zend framework 优化zend框架+;doctrine2web应用程序

Zend framework 优化zend框架+;doctrine2web应用程序,zend-framework,optimization,frameworks,doctrine-orm,Zend Framework,Optimization,Frameworks,Doctrine Orm,我们有一个用PHP+js+mysql编写的大型应用程序。我们的一些老板决定(犯了一个很大的错误,因为他们不是开发人员)将这个应用程序外包给开发公司,以便重写它。他们用Zend Framework+原则重写了应用程序,给了我们一个非常非常慢的应用程序,如果在模块上的旧应用程序中加载需要1秒,那么现在需要4秒 到目前为止,我们已经完成了不可能加快速度的工作:激活缓存服务器,将应用程序迁移到linux,缓存所有可能的内容,但仍然非常缓慢 我需要从所有开发人员那里获得如何优化和加快使用zend fram

我们有一个用PHP+js+mysql编写的大型应用程序。我们的一些老板决定(犯了一个很大的错误,因为他们不是开发人员)将这个应用程序外包给开发公司,以便重写它。他们用Zend Framework+原则重写了应用程序,给了我们一个非常非常慢的应用程序,如果在模块上的旧应用程序中加载需要1秒,那么现在需要4秒

到目前为止,我们已经完成了不可能加快速度的工作:激活缓存服务器,将应用程序迁移到linux,缓存所有可能的内容,但仍然非常缓慢


我需要从所有开发人员那里获得如何优化和加快使用zend framework和doctrin2编写的应用程序的经验(我们无法删除Doctrin,我们已经实现了缓存系统)?提示、技巧、想法欢迎任何一位开发者。

与任何PHP应用程序一样:

  • 在开发机器上启用Xdebug,并进行一些分析,以查看瓶颈在哪里
  • 启用MySQL慢速查询日志,查看是否可以改进查询

您还可以查看
Zend_DB
中的DB评测功能,查看应用程序是否正在执行不必要的查询或加载超出其需要的数据。

对于所有网站应用程序,使用此firebug插件优化代码,您可以真正赢得性能

有了它,您的页面就有了一个符号,其中列出了改进fastest应用程序的列表

之后,对于Doctrine2,您可以对一些小请求使用fetchArray()(全局,用户使用fetchAll())。 对于请求,FetchArray比fetchAll更快,因为FetchArray只返回一个数组,而fetchAll返回请求中链接的所有对象。。。(很多时候,数组就足够了)


希望我能帮助你。

我们已经做了统计,并在可能的情况下使用firebug和Yslow、缓存、优化查询原则dql,但应用程序结果仍然很慢。你比较了原则和Mysql中的时间请求了吗?有不同的吗?或者时间是相似的?当你显示没有mysql(或dql)处理的页面时?显示页面更快?还是太慢了?+1对于fetchArray,但是在原则中使用了fetchAll命令,我们注意到,对于fechting,使用了getResult命令,正如您所说的返回所有链接对象。(做一个GETREST的VARXDUP)给出了一个令人讨厌的输出。)考虑到我们的数据库中有170个表,并且每个用户都有一个这种类型的数据库,我忘记了一个细节:当使用SyfFrand框架使用Struts时,预查询是使用一个PHP加速器()如果在php项目中添加加速器,dql请求可能会更快……听起来您需要仔细检查代码,看看它们做了什么。如果您启用了APC,那么ZendFramework和Doctrine没有理由需要4秒钟来加载(除非有一个写得不好的数据库查询)。他们可能做了很多不正确的事情。当我们将web应用程序从windows server移动到linux centos server时,我们加快了速度,我们看到了一些使用doctrine的getSql和getDql命令的查询,还有一些带有大量联接和别名的最麻烦的查询,但是我们确实知道,如果这些查询中有一些是从doctrine自动生成的,那么您需要按照其中一个答案中的建议启用慢速查询日志。并分析这些查询以查看它们花费了多少时间。