返回列表 发帖
域名 匹配跟 html 匹配不一样 ok ?
这样吧. 我们用数字来说明一下问题
   js的效率并不高, 比c++远远落后 . 我们测试一下 域名匹配所需要的时间
以下代码可以在资源收集器运行
  1. <script language="JavaScript">
  2. var  counter=1000;
  3. var host ='17173.com';
  4. var time1 = new Date().getTime();
  5. for(var i=0;i<counter;i++){
  6. if( host == '163.com')alert('true');
  7. }
  8. alert(new Date().getTime() - time1)
  9. </script>
复制代码
另外, js的计算周期为16ms(毫秒)

在我的电脑 p4 1.8 内存768  上
  裸奔,开了三个q 迅雷bt

前面是匹配次数 ,后面是所需时间, 单位毫秒 下同
次数: 0 ~ 1000   所需时间 0 (即瞬时或者 少于16ms
          10000                           20
           100000                        210~220
            1000000                       2073~  2153  

当你写了100w条规则, tw 用 脚本 需要域名判断只需要2秒.   c++ 呢? 我猜会在5分之1秒内完成


tw的黑名单需要改进, 或许索引是一个方向(因为自身管理不方便) 但绝对不是效率的问题
   
mt的过滤不见得比tw要先进...
天下无不散之筵席.

世界之窗浏览器开发计划

TOP

原帖由 needed 于 2007-12-28 10:56 发表 http://bbs.ioage.com/cn/images/common/back.gif


是的,MX只是比TW多了个用户暗示,所以“感觉上快”。

好吧,有具体的数据那就很好说话了,性能效率是其一。

其二是管理,LS说的很清楚,这是软肋,这一点以前很多帖子都反映了;
其三是稳定,其实这个说不准,变数很多,至少我感觉少匹配说不定能得到稳定的提升

这三点是顶楼帖子的核心,关于第一点数据已经证明不必多虑,非常感谢needed的数据;那么就只剩第二点和第三点了。

很高兴能够探讨这个问题。
liuyis[AT]live.com

TOP

MT2 的黑名单便是采用 LZ 建议的匹配方法,可以看看 MT2 的 sitelist.xml 格式:
  1. <sp>
  2.     <m2filter d="*" version="1.0">
  3.         <blacklist/>
  4.         <whitelist/>
  5.     </m2filter>
  6.     <m2filter d="hezu123.com" version="1.0">
  7.         <blacklist>
  8.             <item mode="0">http://busjs.vodone.cn/</item>
  9.         </blacklist>
  10.         <whitelist/>
  11.     </m2filter>
  12.     <m2filter d="bbs.ioage.com" version="1.0">
  13.         <blacklist>
  14.             <item mode="0">http://bbs.ioage.com/cn/images/avatars/noavatar.gif</item>
  15.             <item mode="0">http://bbs.ioage.com/cn/customavatars/5906.png</item>
  16.             <item mode="0">http://bbs.ioage.com/cn/customavatars/10253.jpg</item>
  17.         </blacklist>        
  18.         <whitelist/>
  19.     </m2filter>
  20. </sp>
复制代码
页面连接的档案地址比域名要长,像 doubleclick 等的地址便往往超过 500 个字节。另外黑名单规则含通配符及正则,匹配上比纯文字要复杂。所以大量的黑名单规则对效率是会有影响的,这也是 TW 一直不支持右键添加过滤规则的原因,避免用户添加过量的规则影响效率。

而 MT2 的黑名单匹配方法则可以大大减低匹配量。因此 MT2 可以支持像 opera 般的方便添加过滤规则方式,而不用担心用户添加过量的规则,因为规则是添加到页面的域名之下的。

MT2 这个方式实在十分值得借鉴。

TOP

假如,假如 mt 打开网页的速度比tw快.
   我严重支持ls的 意见. 可惜..可惜....

  不过还是那句话, tw的黑名单的确需要改进.   
     但个人觉得mt的黑名单并不比 tw的高效/ 注意.我没有说黑名单管理
天下无不散之筵席.

世界之窗浏览器开发计划

TOP

原帖由 needed 于 2007-12-28 10:56 发表 http://bbs.ioage.com/cn/images/common/back.gif
mt的过滤不见得比tw要先进...

MT2 的过滤是比 TW2 更灵活的,能写出更准确的通用过滤规则 (像我之前说过的例子 TW2 目前便不能过滤)。可以看看 MT2 支持的一些属性:

match_count - 在同一个 request 的匹配次数,比如可以注明 1,便可以只匹配 <head> 而不匹配其他,比如 document.write('<head>') 里面的 <head>

bound - 锁定匹配范围,比如确保匹配对应的 opening/closing tag,或匹配 <body onload...> 里面的 onload 而不匹配其他的 onload

max_bound_size - 锁定匹配字节上限,避免不必要的匹配,比如匹配目标 <a...</a> 只有 100 字节,4000 字节的 <a...</a> 便忽略

exclude - 豁免含关键字的匹配,比如匹配所有 <object...</object>,但豁免含 d27cdb6e-ae6d-11cf-96b8-444553540000 (flash)

[ 本帖最后由 AY 于 2007-12-28 14:56 编辑 ]

TOP

虽然不懂这个 但是楼主认真和细心应该赞一个

TOP

mt的便利不等于  高效......
天下无不散之筵席.

世界之窗浏览器开发计划

TOP

牛人!!!!!

TOP

原帖由 needed 于 2007-12-28 14:02 发表 http://bbs.ioage.com/cn/images/common/back.gif
假如,假如 mt 打开网页的速度比tw快.
   我严重支持ls的 意见. 可惜..可惜....

我测试过无数次,每次清除缓存然后同时打开 20 个不同网站的主页,在关闭过滤及插件的情况下(因为 IE 没有相关功能),IE, MyIE, MT1, MT2(beta2 之后版本), TW1, TW2, GB, Avant 所需要的时间相差一般不超过 5-10 秒,即平均每个页面相差不到 0.25-0.5 秒,而反覆测试亦没有固定那个最快的 (MT2 beta 2 及之前版本倒是特别慢)。使用同样的 IE 内核,宣染速度不可能有大分别。用户感觉到的速度分别应该主要是不一致的内容过滤所做成,一个 flash 便往往几百 k,过滤和没过滤所需的页面下载时间会相差很远,相信这个也是一些用户感觉苦花菜版较快的原因。

  不过还是那句话, tw的黑名单的确需要改进.   
     但个人觉得mt的黑名单并不比 tw的高效/ 注意.我没有说黑名单管理

可以再看看 12 楼的解说。

TOP

回复 17# 的帖子

这些本来就是正则表达式的特性,正则表达式本身就可以做到啊

只是用正则表达式写出来比较复杂,mt的这个看上去比较简洁而已

[ 本帖最后由 elkay 于 2007-12-28 16:04 编辑 ]

TOP

原帖由 needed 于 2007-12-28 15:05 发表 http://bbs.ioage.com/cn/images/common/back.gif
mt的便利不等于  高效......

我是说 MT2 的黑名单高效,原理在 12 楼有解说。

另外我是说 MT2 的文本(正则)过滤比 TW2 的更灵活,并非说比 TW2 的更高效。文本(正则)过滤的匹配比黑名单复杂得多,加上 MT 可以使用 bound,很难比较效率。

TOP

原帖由 elkay 于 2007-12-28 16:03 发表 http://bbs.ioage.com/cn/images/common/back.gif
这些本来就是正则表达式的特性,正则表达式本身就可以做到啊

只是用正则表达式写出来比较复杂,mt的这个看上去比较简洁而已

用正则表达式能匹配所有 classid 为 d27cdb6e-ae6d-11cf-96b8-444553540000,cfcdaa03-8be4-11cf-b84b-0020afbbccfa,6bf52a52-394a-11d3-b153-00c04f79faa6,22d6f312-b0f6-11d0-94ab-0080c74c7e95,02bf25d5-8c17-4b23-bc80-d3488abddc6b 以的 <object...</object> 么?作用是禁止 activex object 但豁免 flash/wmp/qt/rp 等。

另外我早前在http://bbs.ioage.com/cn/viewthread.php?tid=40659&extra=&page=2 39 楼说的过滤如何实现?作用是删除所有统计 script,包括 external 及 inline 的。

[ 本帖最后由 AY 于 2007-12-28 16:32 编辑 ]

TOP

返回列表