我从在托管主机上运行 centOS 的旧服务器转移到在 AWS 中运行 Ubuntu 的新服务器。
发布动作我注意到加载项目列表的页面现在需要大约 10-12 秒来呈现(有时甚至长达 74 秒)。在旧服务器上从未注意到这一点。我使用 newrelic 来查看花费了这么长时间的原因,发现 sfPHPView->render() 占用了 99% 的时间。从 nerelic 大约有 500 次调用 DB 来呈现页面。
该页面是一个想法列表,每个想法一行。我使用 Doctrine 1.2 的 $idea->getAccounts()->getSlug() 能力。帐户是另一个表,该表与作为外来关系的想法相关联。对每个创意行调用多次。部分当前不用于保存每个行元素的代码。
- 对行元素使用部分是否有性能优势?(暂时忽略代码可维护性的好处)
- 引用通过外部关系连接的数据的最佳做法是什么?我很惊讶每次调用 $idea->getAccounts()->getSlug() 都会调用数据库。
- 在 ubuntu 中是否有任何明显的东西会使 sfPHPView->render() 运行速度比 centOS 慢?