我使用VirtualBox / Vagrant在以下CMS和平台上本地开发网站:Magento,OpenCart,WordPress和Concrete5。
在上述所有情况中,Concrete5站点是目前最慢的,并且可能需要超过10秒才能完全加载页面。如果登录,页面可能需要20秒以上。
如果我在开发过程中启用缓存,则加载时间会减少到6左右。未登录和登录会话分别为14秒。
我已经为Concrete5定制了我的设置,试图加快它的速度,甚至为VM分配4GB的RAM。我通常会为使用其他平台的所有其他VM分配2GB。分配额外的RAM在性能方面绝对没有。
我一直在使用CentOS 6.4作为客户操作系统......
如上所述,似乎只有Concrete5给我带来了麻烦。有没有其他人经历过这个,如果有的话,你知道它为什么这么慢的特殊原因吗?
答案 0 :(得分:1)
根据您在Unix环境中设置虚拟机的方式,您可以通过在PHP中使用opcaching扩展来大大提升。
我正在使用带有PHP 5.5.x的OPCACHE,我发现Concrete5.7.x运行得非常好,并且使用APC进行opcaching,对PHP 5.4或5.3,差异是可见的。
关于Opcaching扩展如何工作,最好调整它的设置,以便尽可能多地保留RAM中的预编译脚本,因为这可以增强任何php应用程序。
另外值得一提的是,我正在设置Concrete5以适合开发,并且不会因为没有变化而出现问题。
答案 1 :(得分:0)
我设法半解决了上面的问题。我的大多数具体站点构建都包含了不少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 } ?>
这似乎可以在登录时加快网站的速度。
我使用上面的if语句时使用的是jQuery的新版本,而不是Concrete5.6使用的1.7.2版本。
尽管如此,我还没有在其他平台上体验过这一点 - 我会继续研究这个问题。