为什么Magento这么慢?[已关闭]

2022-08-30 06:54:07

Magento通常如此缓慢吗?

这是我第一次体验它,管理面板只需很长时间即可加载和保存更改。它是包含测试数据的默认安装。

托管它的服务器为其他非Magento站点提供超快的服务。Magento使用的PHP代码是什么让它变得如此之慢,可以做些什么来修复它?


答案 1

我只是间接地参与了Magento性能的优化,但这里有一些原因,为什么系统这么慢。

  1. Magento的部分使用在MySQL之上实现的EAV数据库系统。这意味着查询单个“事物”通常意味着查询多行

  2. 在幕后有很多事情(应用程序配置、系统配置、布局配置等)涉及在内存中构建巨大的 XML 树,然后“查询”这些相同的树以获取信息。这需要内存(存储树)和CPU(解析树)。其中一些(尤其是布局树)是巨大的。此外,除非启用了缓存,否则这些树是根据磁盘上的文件每个请求构建的

  3. Magento使用其配置系统来允许您覆盖类。这是一个强大的功能,但这意味着每当实例化模型、帮助程序或控制器时,都需要运行额外的 PHP 指令来确定是否需要原始类文件或覆盖类文件。这加起来。

  4. 除了布局系统,Magento的模板系统还涉及大量的递归渲染。这加起来。

一般来说,Magento工程师的任务首先是构建最灵活,可定制的系统,并在以后担心性能。

为确保更好的性能,您可以做的第一件事就是打开缓存(系统->缓存管理)。这将缓解Magento正在构建其各种XML树时发生的一些CPU/磁盘阻塞。

您要做的第二件事是确保您的主机和运营团队具有性能调整Magento的经验。如果您依靠$ 7 /月的计划来帮助您度过难关,那么祝您好运。


答案 2

除了 Alan Storm 关于缓存的建议之外,我特别建议你研究两件与缓存相关的事情:

- 确保缓存是memcached,而不是磁盘。

我负责几个magento安装,一旦你在系统上得到任何类型的负载,memcached开始执行得更快。而且它很容易改变它(至少相对于做其他magento的东西!

好的起点在这里:http://www.magentocommerce.com/boards/viewthread/12998/P30/ - 但如果你以前根本没有使用过memcached,那么值得一看一些关于它的一般信息。

- 启用模板/视图缓存。

这是一篇好文章:http://inchoo.net/ecommerce/magento/magento-block-caching/

Magento网站上也有不错的(谷歌magento块缓存),但目前它已经关闭了。

为了将我的两分钱添加到块缓存中,我建议您在/app/code/local中创建自己的块,扩展核心块并定义缓存参数,xxx_Cache命名它们,然后更新布局以使用这些块而不是核心块。这样,您可以避免在升级magento时丢失更改或破坏系统。


推荐