`
shuishui8310
  • 浏览: 155213 次
  • 性别: Icon_minigender_1
  • 来自: 宁波
社区版块
存档分类
最新评论

magento -- 给Magento提速之缓存上的探索

阅读更多

依然在为Magento提速做努力,除了自带的缓存和编译,之前的所作的很多努力都是从减少JS,Css,图片等载入时间入手,而对页面载入耗时最早有时也是最大的一部分--获取页面数据没有做太多处理,以gap.cn为例,用firebug看下各个请求的耗时(数据受多方面因素影响,仅供参考):


 

可以看到js和css的载入时间一般是以几十毫秒来计算的,而载入的第一步页面数据却要花掉将近一秒,在用各种方法缩短js,css和图片的载入时间后,想要让Magento跑的更快,就得想办法从缩短这“781ms”处下手。

因为Magento复杂的代码架构和EAV模式的数据库,导致每次页面载入都要读取大量的php文件和大量的数据表,自带的缓存将一些常用的数据缓存到了文件里,而不需要每次都去读取数据库,这提醒了我们一种思路,就是将页面上常用的数据都缓存起来,减少读取php文件和数据库的需要。不记得在哪里看到过一篇文章提到,Magento自带的缓存方案相当保守,缓存的数据很少,页面载入时依然要从数据库读取大量的数据。我们所要做的就是改进缓存的方案,将更多数据缓存到文件中去。

我对缓存的研究不是很深,个人理解大概分两种,一种是整页缓存,一种是局部缓存,以我测试过的两个缓存插件为例阐述下观点。

第一个插件是一个整页缓存的插件--Performance Booster,官网上的地址是http://www.magentocommerce.com/magento-connect/AITOC,+Inc./extension/4865/performance_booster,这个插件开启后,会在前台每访问一个页面后就生成一个静态html,下次再访问相同页面时会直接读取静态文件的内容,速度提升相当明显,能将第一步html的载入时间从几百毫秒直接提升到几十毫秒。这个插件的代码里监听了一大堆事件,用来刷新缓存,比如后台修改产品信息后保持的时候会刷新对应的缓存。

按说这个插件已经将可能需要刷新缓存的状况都考虑到了,但我在使用的时候却遇到了麻烦。因为Magento是个高度开放的系统,可以安装各种各样的第三方插件,也可以自己写一些新模块进去。插件不可能考虑到除了系统自带模块以外需要刷新缓存的情况,这就导致了页面某些部分在后台数据已经改变的情况下前台没有刷新或者有一些功能块直接出现异常无法使用。而我所经手的项目大多都装有不少插件,以及自己所做的修改,所以很难有机会用上这个插件了。

第二个插件是一个免费插件--CatalogCache,官网上的地址是http://www.magentocommerce.com/magento-connect/netresearch/extension/2138/catalogcache,这个插件功能很简单,就是缓存了Catalog/Product_View和Catalog/Product_List这两个block的数据,对页面上来说,也就是缓存了产品列表页的产品数据和产品详细页的产品数据,只缓存局部,而不是整个页面。经测试,在产品数比较多的列表页和产品页,开启这个插件后能带来大概100ms--到200ms不等的速度提升。因为只缓存了两个block,所以插件也只对列表页和产品页起效果。

这个插件功能简单,针对性强,所以也不用担心会对列表页和产品页以外的东西造成影响,经过一段时间测试没问题后已经用在了正式的项目上。当然推荐这个插件并不是这篇文章的主要目的,而是这个插件让我觉得用同样的方式给各种常用block写缓存是种安全而又实用的方式,虽然效果上肯定比不上直接读静态文件来得快,但因为是自己一块块写的,不需要担心整页缓存时会有哪一块遗漏了没有照顾到。也就是说,不管你添加了多少第三方插件,或者自己写了多少功能,依然可以用这种方式来做优化,自己选择性的给局部做缓存。

得出我自己的观点,整页缓存的适应性不够好,无法应对各种不同的项目情况,如果你的Magento站只是在默认功能上套了个模板,可以尝试下第一个插件,如果项目有不少第三方插件,甚至做了不少二次开发,那么就放弃整页缓存方案。所以局部缓存才是我认为最适合Magento的方案,虽然效果比不上整页缓存,但胜在灵活,安全,适应性强。

个人肤浅的观点,欢迎拍砖!

  • 大小: 33.9 KB
分享到:
评论
1 楼 anderson916 2011-08-08  
可以访问我的网站: http://www.magento-china.net
有我自己开发的全页缓存模块,非常快,提速高达几十倍。

相关推荐

    Magento-中文开发教程

    Magento-中文开发教程, 欢迎大家指出错误。 深入理解Magento-第一章 – Magento强大的配置系统 深入理解Magento-第二章 – Magento请求分发与控制器 深入理解Magento-第三章 – 布局,块和模板 深入理解...

    magento-ce-2.4.0_sample_data-2020-07-26-02-51-57.tar.gz

    magento-ce-2.4.0_sample_data-2020-07-26-02-51-57.tar.gz Include sample data

    Magento-Redismanager, 在 Magento,用于Redis的超级用户控制.zip

    Magento-Redismanager, 在 Magento,用于Redis的超级用户控制 Redis 管理Redis服务的实用程序特性系统> 配置>的自动或者手动配置高级> Redis管理在负载均衡环境中缓存服务不同的理想情况直接从magento面板管理员管理...

    Magento-中文开发教程.doc

    你可以通过缓存管理、图片优化、数据库索引优化、部署静态文件等方式提升Magento的加载速度和响应时间。 七、Magento的安全与维护 保持Magento系统的安全和更新是每个管理员的责任。定期备份数据库、安装安全补丁、...

    magento-ce-2.4.0-2020-07-24-11-15-38.tar.gz

    magento-ce-2.4.0-2020-07-24-11-15-38.tar.gz 不带sample data

    Magento-SMTP-Email

    "Magento-SMTP-Pro-Email-Extension"是一个专业的SMTP扩展,提供了一系列高级功能。以下是该插件的一些核心特性: 1. **多SMTP配置**:商家可以根据不同的业务需求配置多个SMTP服务器,比如用于测试和正式环境。 2...

    magento-java-master.zip_magento

    这个“magento-java-master.zip_magento”压缩包可能是为了提供一个Java连接Magento源码的示例或者库,帮助开发者实现Java与Magento系统的交互。 在Java中与Magento进行交互通常涉及到以下几个关键知识点: 1. **...

    magento -redis 插件安装包

    Magento是一款强大的开源电子商务平台,而Redis则是一种高性能的键值数据存储系统,常用于缓存、session管理等场景。在Magento中集成Redis插件可以显著提升网站性能,降低数据库负载,尤其是在处理高并发请求时。...

    magento-1.8.0.0.tar.gz

    3. **移动优化**:随着移动设备的普及,Magento 1.8.0.0 强调了响应式设计,确保在不同设备上的良好展示。 4. **报告与分析**:加强了数据分析功能,商家可以获取详细的销售、流量和客户行为报告,以优化经营策略。 ...

    magento-演示数据1.6.1.0

    "magento-演示数据1.6.1.0"是一个专门为Magento 1.6.1.0版本准备的示例数据包,它包含了用于演示和测试 Magento 商店功能的各种数据,如产品、类别、顾客、订单等。 该压缩包文件“magento-sample-data-1.6.1.0”...

    magento-ce-2.4.2-p1-2021-04-22-10-49-09.zip

    因为国外网速太慢了,所以下载后分享给需要的人。magento-ce-2.4.2-p1-2021-04-22-10-49-09

    magento-1.7.0.7z

    这个7z压缩包“magento-1.7.0.7z”包含了用于安装Magento 1.7.0的所有必要文件,而“magento-1.7.0.2.tar”可能是该版本的一个特定更新或备份文件。 在深入探讨Magento 1.7.0的知识点之前,我们首先要了解它为何...

    PyPI 官网下载 | magento-0.6dev.tar.gz

    标题中的"PyPI 官网下载 | magento-0.6dev.tar.gz"指的是Python Package Index(PyPI)上的一个项目,它是一个名为"Magento"的软件包的特定版本,即0.6dev。PyPI是Python开发者发布和分享他们自己创建的Python库或...

    Magento 给产品描述关键字批量链接插件

    如何给产品描述里的关键字、字词批量添加链接?我想大家一直在的这样的插件。...说明请查看:http://www.hicoogle.com/magento-gei-chan-pin-miao-shu-guan-jian-zi-pi-liang-lian-jie-cha-jian.html

    magento-1.9.1.1-2015-04-30-12-49-08

    这个标题"magento-1.9.1.1-2015-04-30-12-49-08"指的是Magento的一个特定版本,即1.9.1.1,发布于2015年4月30日,具体时间是12:49:08。这个版本包含了该阶段Magento系统的所有更新、修复和增强功能。 Magento 1.9....

    magento-coding-standard:Magento编码标准

    在Magento 2站点内安装要在您的Magento 2项目中使用,可以使用: composer require --dev magento/magento-coding-standard 出于安全考虑,以这种方式安装时,无法自动添加phpcs的Magento标准。 您可以通过将以下...

    Magento-CE-2.3.4_sample_data-2020-01-22-11-11-58.tar.gz

    Magento-CE-2.3.4_sample_data-2020-01-22-11-11-58.tar.gz源自官网

    magento-stock-movements, Magento扩展,节省产品库存.zip

    magento-stock-movements, Magento扩展,节省产品库存 节省你的Magento产品的库存 特性将库存移动保存在产品修改页面的新标签中安装 Magento 1.5. x, 1.6. x, 1.7. x, 1.8. x, 1.9.x使用 modgit 安装:$ cd/pat

    Ajax-Magento-ajax-add-to-cart.zip

    Ajax-Magento-ajax-add-to-cart.zip,[模块magento 1]magento ajax添加到购物车-ajoter vos produits au panier en ajax/感谢ajax将您的产品添加到购物车,ajax代表异步javascript和xml。它是多种web技术的集合,包括...

    magento-1.7.0.2汉化包|magento-1.7.0.2中文语言包下载

    标题提到的是"magento-1.7.0.2汉化包",这表明我们讨论的是Magento 1.7.0.2版本的中文语言包。这个版本是Magento在2012年发布的一个稳定版本,对于中国市场来说,汉化包的提供极大地提高了中国用户使用该平台的便利...

Global site tag (gtag.js) - Google Analytics