- UID
- 5906
- 帖子
- 3127
- 精华
- 0
- 贡献
- 18
- 推广
- 1
- 有效BUG
- 0
- 来自
- 上海
- 注册时间
- 2005-12-8
|
似乎过滤规则对打开网页效率影响甚大。就如我的博客forerunner.yo2.cn而言,使用TW打开需要等待数分钟(我的过滤规则比较多,因为我喜欢在网上乱逛),但使用FF3Beta2打开,竟然只花了十多秒时间。这是在相同时间(晚间十二点左右)在相同系统环境下的尝试。
我翻看了一下theworld.ini文件,似乎感觉tw的黑名单过滤是单个页面对整个黑名单库进行逐个匹配,也就是说如果我有1000条左右的规则,那么我打开一个没有广告的页面也需要进行匹配1000次,这只是进行域名匹配。如果域名吻合匹配了,则进行网页HTML代码的匹配,(或许我有认识的错误或不专业的问题)- #exd#*网站域名匹配*#HTML逐条匹配###替代内容
复制代码 就如下面所示,我猜测的匹配方式。(例举我的博客forerunner.yo2.cn为例)- #exd#*17173.com*#AdCode001###<!--twadreplaceinfo--><!--规则1-->
- #exd#*17173.com*#AdCode002###<!--twadreplaceinfo--><!--规则2-->
- #exd#*forerunner.yo2.cn*#AdCode003###<!--twadreplaceinfo--><!--规则3-->
- #exd#*cnbeta.com*#AdCde004###<!--twadreplaceinfo--><!--规则4-->
- #exd#*bbs.cnbeta.com*#AdCde005###<!--twadreplaceinfo--><!--规则5-->
复制代码 以上规则是以并列形式存在的,也就是如下所示的结构:
├白名单;
├全局规则(通用规则);
├规则1:17173.com规则,AdCode001;
├规则2:17173.com规则,AdCode002;
├规则3:Forerunner.yo2.cn规则,AdCode003;
├规则4:cnBeta.com规则,AdCode4;
├规则5:bbs.cnBeta.com规则,AdCode5.
我认为这不是理想的状况,因为诸如17173这类广告满天飞,E版狂喷血的网站,广告何其多,规则何其多,如果按照目前的全体进行域名匹配一遍,实在是太夸张了,更何况有些网际超人、网际狂人和像我这样的网际浪客,整天飘来荡去的,规则必定会逐渐累积变得很多,虽然我们也想减少规则,但比起那些该死的讨厌的广告,我们还是会觉得这些规则是比较可爱的和可接受的。
所以我认为我们或许可以采用以下的方式进行匹配,这样可以减少大量的匹配,或许能够达到所谓“加速”或打开网页“减少卡”的情况,或许有些规则会导致部分用户浏览器假死的情况,又或者是浏览器比较猛的网站(如使用了needed版主的iframe通杀规则,而某个网站恰好比较恶搞搞了数十百来个这样的小的或display的iframe,我们的浏览器一定吃不消,假死也是极有可能的)。虽然我觉得我有些胡搅蛮缠,上面的理由也许比较牵强,但也说明了一个比较核心的问题,这也是本建议的比较核心的问题,那就是规则有时候会对浏览器的稳定或正常流行行为产生不良影响,严重的情况便是假死。
以下是我认为比较理想的方式,这种方式很可能可以改善我们浏览部分网页时的效率。
├白名单;
├全局规则(通用规则);
├匹配域名索引1:17173.com
│ ├17173.com站内规则1:#*17173.com*#AdCode001###<!--twadreplaceinfo--><!--规则1-->;
│ └17173.com站内规则2:#*17173.com*#AdCode002###<!--twadreplaceinfo--><!--规则2-->;
├匹配域名索引2:yo2.cn
│ └yo2.cn站内规则3:#*forerunner.yo2.cn*#AdCode003###<!--twadreplaceinfo--><!--规则3-->;
└匹配域名索引3:cnBeta.com
├ cnBeta.com站内规则4:#*cnbeta.com*#AdCode004###<!--twadreplaceinfo--><!--规则4-->;
└ cnBeta.com站内规则5:#*bbs.cnbeta.com*#AdCode005###<!--twadreplaceinfo--><!--规则5-->.
如上面的结构图,如果要匹配forerunner.yo2.cn我的博客的话,17173的规则库只会匹配一次,而不是两次,cnbeta也是,这样我打开forerunner.yo2.cn,便减少了2次多余的匹配。如果规则比较多,那么减少量将是非常可观的。
如果我需要浏览17173,那么我也只会匹配一个cnbeta(只需匹配域名索引),那么我对于17173的匹配次数将是:
匹配次数=域名索引总数+17173规则库条数*HTML代码量*系数m
(其中域名索引总数<<规则总数)
而如果不改进的话,则是一个就比较恐怖的数字(如果你的规则量比较可观的话):
匹配次数=规则总数-17173规则库总数+17173规则库总数*HTML代码量*系数m
(其中规则总数>>域名索引总数)
我想,一个网站再NB也不会牛逼到规则库总数超过几十条吧,所以我认为可以把【bbs.cnbeta.com】放入【cnbeta.com】之下(如上面结构图的规则4和规则5)。因此通过两层关系,站点的规则库采用索引匹配,匹配域名索引之后忽视其他的域名索引,直接开始匹配这个域名索引下的规则库,效率大大增加,更有利于管理规则(如果开发组将之纳入计划的话)。
我说的不是很专业,事实上一些东西我也不是非常理解其原理,但使用规则的用户一定会注意到有些规则会大大降低浏览效率,有时候规则的先后顺序也影响过滤效果(这个理所当然,这个和匹配的原理有关,我觉得E版可以为我们总结些什么,因为他是规则版块的元老之一)。
上面的看法和观点望开发组能考虑,同时也接受广大发烧友(如我)的质疑和诘问,共同就这个功能的完善献计献策,供开发组考虑。
最后,献上一份迟到的圣诞节快乐祝语和一份提前的元旦快乐祝语,预祝广大同学们在1月7号之后的考试中取得满意成绩:)
[ 本帖最后由 285900537 于 2007-12-27 15:47 编辑 ] |
|