How many is too many?

看到 Alex King 的这个问题,我突然有了一个想法。我们多数人都有一个共识,那就是 WP 的插件要尽量少装,以免影响页面的打开速度。但究竟这个理论对不对呢?好像没什么人来质疑它。我用 WP 的时间不算太长,始于大概半年多些。开始的时候我谨记前辈的经验,插件能不装就不装,生怕影响了来我 Blog 的朋友的游兴。不过使用 WP 日子久了,插件的数目已经不能算少了,什么时候慢慢多起来的,自己完全没有意识。这时回想起少装插件的理论,就很想测测看,以现在的插件数量打开首页,比没安插件的状态下打开首页的时间到底长多少,以此证明这个理论是否正确,在多大程度上正确。

实验方法我打算这样。

在目前正常的状态下,也就是说用当前的主题和当前的插件,刷新 5 次首页。为避免 浏览器的 cache 起作用,使测试结果产生偏差,我每次都按 Ctrl+F5 强制刷新页面。然后记录下每次刷新所用的时间,取平均值。

把主题切换到默认,把所有的插件都关掉,同样用 Ctrl+F5 刷新 5 次,记录下每次的时间,取平均值。

怎么计算打开首页的时间呢?我打算将这行代码放在 footer.php 里,
<?php timer_stop(1); ?>
因为 php 和 html 都是顺序执行,所以执行到这行时,能够最准确的计算出主页被调出所用的时间。这个时候,浏览器的状态条可能还未停,但那可能是某些帖子要去其它网页上获取图片,跟插件无关。

好了,结果出来了,来看看。


插件全开的情况下,平均的调出时间是 2.3902 秒,而插件全关的情况下,平均的调出时间是 1.439 秒。也就是说,即使使用了 21 个插件,比不使用任何插件也只慢了不到 1 秒。这是一个意外的结果,它告诉我们,插件的数量并不是绝对影响调用时间的。你可能会说,实验的次数太少,样本不够大。也许是吧,但我认为即便有更大的样本,也不会对结果构成实质的影响。

另外,昨天跟 hhalloyy 在 GTalk 上聊天时,我说我装了 25 个 Firefox 的扩展。hhalloyy 表示出我装的太多,我说我虽然装了不少,但启动并没有增加太多的资源占用。牺牲的那些资源,跟那些扩展对我的帮助来比,简直不值一提。

为了证明这点,我再来做个小实验。在现在的 profile 下打开 Firefox,记录下启动后内存和虚拟内存的占用量。然后用 firefox.exe -profilemanager 命令新建一个 profile 后打开 Firefox,也记录下启动后的内存和虚拟内在占用量。对比看看空间这些扩展能占用去多少资源。

来看下图。

可以看到,即使我安装并激活了 25 个插件,Firefox 的资源占用也并没有增加多少。内存和虚拟内存分别增加了 5M 和 6M,这对现在内存动辄上 G 的电脑来说,连塞牙缝都不够。

既然插件/扩展数量对 Wordpress 和 Firefox 都没有什么影响,那么为什么很多人会得出少安装插件/扩展能减少资源占用的结论呢?我的结论正好跟 Alex 的结论相印证:

Which plugins you use, much more than the number of plugins you use, is the determining factor in their overall effect on your blog.

一句话总结,数量并不是决定因素,你安装了什么插件/扩展才是资源占用多寡的决定因素

我的原则就是这样,只要觉得对我有用,我并不太会考虑太多,直接就拿来用。唯一要注意的就是,如果碰上设计不良的插件(比如早期的 Adblock 会导致 FX 内存泄漏)或是跟其它插件冲突的插件,还是尽早找个替代品吧。 :wink:

[完]

11 Comment(s)

  1. kevin
    January 30th, 2007 at 1:23 am

    很好的实验
    下次就没有什么好担心的了

    但是,插件的优劣还是要考虑的
    WP用了这么久
    居然没有一个插件能够阻拦垃圾留言

    一些人推荐的SK2之类的
    我可以绝对的说:不及格!

  2. XYU
    January 30th, 2007 at 2:23 am

    SK2对付国外的Spammer效果还是很好的,但对中文Spam就比较差,经常有漏网之鱼

  3. Michael  (Blog Owner)
    January 30th, 2007 at 10:49 am

    SK2 我觉得属于不太推荐的大鳄级插件,resource eater :lol:

    akismet 是把留言递到远程服务器上去识别,而 SK2 只是在本地靠自身的力量来进行识别。

    这样的效果不会比 akismet 好,但占用的资源就比 akismet 大多了。

  4. pute
    January 30th, 2007 at 4:08 pm

    我挺喜欢k2.主要是因为我懒。

  5. hhalloyy
    January 30th, 2007 at 9:34 pm

    是sk2,不是k2,kevin应该说的就是我推荐的吧。 :cool:

    反正我用akismet时它根本不能阻止track和pingback,所以每次更新wp时,我都手动把它默认带的这个插件删除 :oops:

  6. hhalloyy
    January 30th, 2007 at 9:35 pm

    忘记说了,有功夫你把firefox的插件列表写出来,好让我也多装点有用的 :!:

  7. 探花
    January 31st, 2007 at 1:14 pm

  8. 炎藤
    February 1st, 2007 at 12:04 am

    我觉得快慢主要还是和插件的品质有关系
    还有如果插件太多,管理维护也不方便,除错也会很麻烦的
    不是吗?

  9. Camel
    February 1st, 2007 at 12:49 pm

    插件究竟会占用多少系统资源,也得看插件是怎么写的,是用来干什么的。比如像sitemap、drop down menu之类,对页面载入速度肯定没什么影响,但如果是textile、代码着色之类肯定就有,而且影响的大小还要看页面内容是什么。
    你做的这个实验,页面载入时间增加了70%,其实也不算少了吧。不过我觉得只要不怕麻烦不会引起冲突,想用就用好了。
    至于firefox那个实验,我觉得不够严谨,因为很多插件在刚运行时并没起多少作用。

  10. Michael  (Blog Owner)
    February 1st, 2007 at 2:18 pm

    骆驼兄啊,你说的正是我的重点啊,我文中最后的结论就是

    一句话总结,数量并不是决定因素,你安装了什么插件/扩展才是资源占用多寡的决定因素。

    firefox 的实验我其实想试验的只是启动后的资源,因为不管是插件还是软件,要实在某种功能必然要付出代价。插件一旦开启,占用资源那是一定的 :mrgreen:

  11. Zhang
    March 9th, 2007 at 3:43 am

    WP有两种插件最好少装,一种是代码量过大,初始化时间会很长,比如UTW

    其次是数据库查询过多的。dreamhost的数据库查询似乎很慢…

1 Pingback/Trackback(s)

  1. 我使用的 Firefox 插件 | 巧克力工厂 (Beta3)

    January 30th, 2007 at 10:35 pm

    1

    [...] 建议我写一下我用的 Firefox [...]


RSS feed for comments on this post · TrackBack URI

Leave a reply