在 VM / Vagrant 环境中开发 Concrete5 站点 - 如何加快速度?

Developing a Concrete5 site in a VM / Vagrant environment - how to speed it up?

我使用 VirtualBox / Vagrant 在以下 CMS 和平台上本地开发网站:Magento、OpenCart、WordPress 和 Concrete5。

在以上所有网站中,Concrete5 网站是迄今为止最慢的,可能需要超过 10 秒才能完全加载页面。如果已登录,页面可能需要 20 多秒。

如果我在开发过程中启用缓存,加载时间将分别减少到 6 秒和 14 秒左右,分别用于未登录和登录会话。

我已经为 Concrete5 定制了我的设置以试图加快它的速度,甚至为 VM 分配了 4GB 的 RAM。我通常将 2GB 分配给使用其他平台的所有其他 VM。分配额外的 RAM 在性能方面绝对没有任何效果。

我一直在使用 CentOS 6.4 作为访客 OS...

如上所述,似乎只有 Concrete5 给我带来了问题。有没有其他人经历过这种情况,如果有,你知道它这么慢的任何特殊原因吗?

我设法半解决了上面的问题。我的大多数具体站点构建都包含相当多的 jQuery 模块/包。我一直将它们置于 noConflict 模式,因此它们在登录时不会干扰 Concrete5 自己的 jQuery 因此与未登录时。

我没有这样做,而是将所有 jQuery 文件包含和内联语句包装在一个 if 语句中,如下例所示:

<?php
$u = new User();
if(!$u->isLoggedIn()) { ?>

<script>
jQuery here
</script>
<script src="<?php echo $this->getThemePath()?>/js/flex.js"></script>

<?php } ?>

这似乎在登录时加快了站点速度。

当使用比 Concrete5.6 使用的 1.7.2 版本更新的 jQuery 版本时,我已经使用了上面的 if 语句。

不过,我在其他平台上没有遇到过这个问题 - 我会继续研究这个问题。

根据您设置虚拟机的方式,在 *Unix 环境中,您可以通过在 PHP 中使用 opcaching 扩展来实现大幅提升。

我将 OPCACHE 与 PHP 5.5.x 一起使用,我发现 Concrete5.7.x 到 运行 非常好并且反对 PHP 5.4 或 5.3使用 APC 进行 opcaching,差异可见。

至于 Opcaching 扩展的工作原理,最好调整它的设置,以便它在 RAM 中保留尽可能多的预编译脚本,因为这会提升任何 php 应用程序。

还要提一下,我将 Concrete5 设置为适合开发,并且不会因为事情没有改变而出现问题。