预告中的性能测试,结果我不想贴了,因为改造前后实在是看不出明显差距(用的Apache的ab)。这个结果其实有心理准备,或者说在预料当中。虽然配置文件的加载(config.xml等)在Magento接收一个请求的整个进程中影响不小(处理时间和内存占用),但我这次的改造对配置文件总量的缩减不够明显,对最后结果的影响自然就不明显了。

瘦身效果多不明显,有数据为证,用Alan大神的Configviewer模块分别记录下改造前后的总配置文件(聚合之后),改造前的xml总行数(拷贝到编辑器格式化之后,后面同理)是9465行,改造之后(删除我所谓的所有可被约定所替代的配置)的总行数是8718行,瘦身的百分比只有大概8%,这个程度的瘦身,再加上我为了实现“按约定加载”所添加在核心的php代码的影响(负面影响)抵消,最终的结果也就很好理解了。

这次的折腾到此为止确实是很像一次玩票,不过我倒是没有觉得所花的时间是浪费的。首先,再一次读了下Magento的核心代码(以前也看过,但没想那么多),核心代码写得好的部分可以学习,写的不好的部分也可以学习(作为反面例子),无法判定好或坏的部分,也可以作为思考的源泉。其次,我依然认为Magento某些方面有过度设计,与“约定优于配置”这个流行的思想不一致,虽然我之前做的改造没有取得明显的效果,但一方面除了前面指出的这些,Magento必然还有不少地方值得改造,需要时间和工具(比如APM)去挖掘,另一方面改造的思路没错,但我个人写的实现这个思路的具体代码本身可能还没有做到性能最优(越是底层的代码,对系统的整体性能的影响越大,特别是有并发的情况下)。通俗点讲,道路虽然是正确的,但路还是要一步一步走出来的。

前面说到配置文件的加载对一次系统请求影响不小,其实有另一个很简单的方式去瘦身,这个方式算是Magento的常识之一,也是很多新手很容易不注意的地方(或者觉得无关紧要而忽视的)。这个方式就是关掉你所不需要的Magento模块,关闭的方式是去找app/etc/modules下面的xml,找到对应的模块定义,把模块状态改为false(或者直接删掉该文件)。以做中文站为例,在国内用不到的支付方式(paypal等),配送方式(dhl等)所有对应的模块都是可以直接关闭的。以Phoenix_Moneybookers模块为例,在上面的改造后基础上,仅仅是关闭Phoenix_Moneybookers模块,总配置文件的xml总行数就从8718下降到了8544行(我的改造费老大劲也就干掉了不到一千行

<config><modules><Phoenix_Moneybookers><active>false</active><codePool>community</codePool></Phoenix_Moneybookers></modules>
</config>

每个基于Magento做的网站都有各自不同的特性,国内或国外,食品或衣服,大众商品或个性商品等,所以就Magento自带模块(先不讨论第三方模块)来说,每个网站都会有一些自带模块是用不到的,A网站需要用A模块而不需要B模块,而B网站需要用B模块而不需要A模块等。关闭掉自己不需要的模块是强烈建议做的一件事,前面提到有些新手觉得这个无关紧要,是因为没有意识到关闭无用模块对性能的提升其实挺明显。有点扯远了,关模块这个其实是另一个值得一讲的话题,有时间可以单独写一章讲一讲。

“约定优于配置”与Magento总结相关推荐

  1. “约定优于配置”与Magento改造尝试四之block、helper和model载入

    暂定本章为这个系列最后一章,还是继续沿用模块的别名(alias)概念 <modules><Mage_Wishlist><version>1.6.0.0</ve ...

  2. springboot约定优于配置的体现

    约定优于配置的体现主要是 1. maven的目录结构 a) 默认有resources文件夹存放配置文件 b) 默认打包方式为jar 2. spring-boot-starter-web中默认包含spr ...

  3. Struts2 ActionWildcard(通配符配置)约定优于配置

    新建web project:struts2_0500_actionwildcard Build Path 项目图: src: StudentAction.java TeacherAction.java ...

  4. SpringMVC介绍之约定优于配置

    2019独角兽企业重金招聘Python工程师标准>>> SpringMVC介绍之约定优于配置 所谓的约定优于配置就是指在程序开发过程中我们约定好一些规则可以使我们更少的进行配置和代码 ...

  5. SpringBoot自问世以来,一直有一个响亮的口号“约定优于配置“

    我们都知道SpringBoot自问世以来,一直有一个响亮的口号"约定优于配置",其实一种按约定编程的软件设计范式,目的在于减少软件开发人员在工作中的各种繁琐的配置,我们都知道传统的 ...

  6. maven-约定优于配置

    maven是一个高度自动化的构建工具,在很多的项目开发过程中都用到maven,maven主要负责管理项目依赖关系以及jar包.运用了"约定优于配置"的思想,从而提高开发效率和管理秩 ...

  7. SpringBoot约定大于配置的特性解读 SpringBoot快速入门

    SpringBoot约定大于配置 Spring官方网站本身使用Spring框架开发,随着功能以及业务逻辑的日益复杂,应用伴随着大量的XML配置文件以及复杂的Bean依赖关系.随着Spring 3.0的 ...

  8. 约定由于配置(Convention over Configuration)

    约定优于配置 约定优于配置(convention over configuration)[1],也称作按约定编程[2],是一种软件设计范式,旨在减少软件开发人员需做决定的数量,获得简单的好处,而又不失 ...

  9. 81、前后端等上下游岗位配合的思考和参考工作方法,望文知意,约定优于沟通

    友情提示 1.本文主要以 后端研发视角写的 2.本文纯属一家之言,仅供参考.慎重参考 3.本文主要探讨项目开发和配合. 一.岗位链条,上下游 需求-pm-前端-后端-测试-运维+boss. 一荣俱荣, ...

  10. Spring Boot(一) 自动装配--约定大于配置

    欢迎去我的个人博客--晓坞坐坐,里面有很多有趣的文章,不止是技术.www.lixiaodongisme.com 随着spring体系的发展,我们在开发时需要配置整合的东西也越来越多,在进行开发时,繁琐 ...

最新文章

  1. 三、入门实例----基于注解
  2. PHP面试题:windows平台, Apache Http Server启动失败, 排错思路是什么?
  3. HDU4416(后缀自动机)
  4. 使用mysql自带工具mysqlslap测试数据库性能
  5. C4C Cloud Application Studio做ABSL开发的一些性能方面的最佳实践
  6. TF从文件中读取数据
  7. stc单片机485发送多出一字节_单片机干货!STC8H案例制作分享(内含高清实物动图)...
  8. weblogic12升级jdk_如何修改WEBLOGIC的JDK版本
  9. UVA 620 - Cellular Structure
  10. 于一次JSON格式错误 之 手把手带你走一波FastJSON将对象转成JSON字符串流程
  11. 《高质量程序设计指南:C++/C语言》图书信息
  12. 金融计量模型(一):引言
  13. Oracle-select...into...from语句的使用
  14. mysql 生日_MySQL数据库之MySql查询生日的两种方式
  15. MySQL创建自定义函数提示:This function has none of DETERMINISTIC, NO SQL, or READS SQL DATA in its ......
  16. SQL Sever——远程过程调用失败(0x800706be)
  17. 一文读懂数据库的文本数据类型:CHAR,VARCHAR,TEXT,BLOG,NCHAR、NVARCHAR、NTEXT
  18. 苹果开放降级通道_今天下午 iOS 降级通道打开?骗子!
  19. STM8S之STVD问题解决47 can't openfile crtsi0.sm8
  20. 自我鉴定范文 php,毕业生优秀自我鉴定

热门文章

  1. localhost拒绝连接解决办法
  2. Unity打包篇:能够解决Unity打包Gradle遇到的所有问题方法整合!(持续更新中!)
  3. win7系统文件夹共享后有锁图标怎么去掉?
  4. codeforce #401 div2 Alyona and Spreadsheet 思维题
  5. php 监控网页更新提醒,web网站股票自动监控提醒实时变化
  6. IOS UI学习 UI 十个小控件 初度学习
  7. 知乎周源:知识变现背后的信息逻辑
  8. n服登陆显示从服务器断开,魔兽世界N服卡认证、断开连接的解决方法
  9. 西瓜书-机器学习复习<HENU>
  10. modbusx协议讲解