作者mayuyu (‵・ω・′)
看板Browsers
标题Re: [-Fx-] 不喜欢 29+ 的人或许可以考虑 Palemoon
时间Sat May 24 22:54:26 2014
※ 引述《t7yang (t7: 我认为这是一种背叛)》之铭言:
: karst10607:我不可能不用adblock plus,只能期待它们做得更好了
除了启动时adblock plus的js占用的100MB记忆体消耗,
每个网页adblock plus会再插入额外的css样式,
每个iframe会再增加大约4MB的使用量。
mozilla举了例子,例如
http://techcrunch.com/ 这个网页,
不开adblock plus的话,Fx使用194MB的记忆体,
开启adblock plus的话,记忆体消耗会快速增加到417MB。
只是为了隐藏几个网页的元素(广告),竟然必须付出多一倍的代价。
原来挡广告有一部份原因是为了节省显示广告的资源,
结果可能没省到资源,反而必须付出更多的代价。
mozilla举的另一个例子,下面这个网页有上百个iframe,
http://ppt.cc/2P8g
我开启adblock plus的话,Fx会吃掉超过2GB的记忆体,
而且网页载入速度变得会非常非常慢,Fx最後完全失去回应。
挡广告除了adblock plus,还有Bluhell Firewall套件,
http://ppt.cc/rrVC,据说比较轻量,不会消耗太多资源,
不过我没有用过。
其他还有非浏览器套件类,而是对整个系统所有浏览器
和程式都有过滤效果的本地代理去广告软体,
例如Ad Muncher、Adguard等等。
Ad Muncher有持续维护和更新的中文规则,但是主程式已经很久没有更新了,
不能过滤IE11,还有不能过滤https。
Adguard可以过滤IE11也可以过滤https,
可是程式占用的记忆体太夸张,
主程式要100MB,服务也要用掉100MB,加起来200MB,
没有比adblock plus省到哪里去。
比较轻量的方案是用Privoxy或Proxomitron,
原理是一个本地的代理伺服器,浏览器的网路连线先进入
Privoxy程式,由Privoxy过滤後才传出传入,
大部分可以在广告下载前就先挡掉,而不是浏览器载入後再用css隐藏,
可以真正节省网路流量和浏览器使用的记忆体,
而且运作效率非常好,网页载入完全不会有迟钝感。
Privoxy和Proxomitron的规则写法比较复杂,
不过有把adblock plus的规则转成Privoxy规则的script,
虽然有一部份的规则不能很好的转成Privoxy用的规则,
不过大致上还可以用,也就是几乎等於使用adblock plus的挡广告效果,
可是记忆体使用量远远比adblock plus低。
如果觉得改写规则很麻烦,对岸有一个改写自Privoxy的挡广告程式
adbyby
http://www.adbyby.com/
目标是高效率和轻量化,可以在多种系统或路由器上配置。
adbyby可以直接使用adblock plus的规则,
到adblock plus的list网页上
https://adblockplus.org/zh_TW/subscriptions
把规则的txt抓下来复制贴上取代adbyby资料夹下原本的lazy.txt,
并且把lazy.txt设成唯读避免程式自动更新规则,
或者是把adhook.ini里面的
[update]
rule=lazy,video
这一行的lazy去掉,让程式不要自动更新lazy规则。
部分adblock plus规则直接套用会造成误杀,
不过大部分都能正常过滤,
可以自己定义过滤规则,使用adblock plus的格式写在user.txt。
adbyby没有开放程式码,请小心斟酌使用,此类软体具有极高度的风险。
Ad Muncher的主程式使用记忆体大概30MB,
adbyby则是14~20MB,使用adblock plus的规则的话,
过滤效果和adblock plus一样,但是开启上面那个ifrmae超多的测试网页,
Fx使用的记忆体从2GB失去回应,降到正常的400~500MB,
而且载入速度变快很多。
不过这些过滤软体还有一个缺点,那就是不能过滤https,
可是像youtube有登入帐号的话会强制使用https连线,
不能过滤https就会看到影片广告。
像这种https过滤,可以使用自动代理设定pac来挡掉,
像下面这样写一个pac
function FindProxyForURL(url, host) {
if (shExpMatch(host, "ads.youtube.com") ||
shExpMatch(host, "s0.2mdn.net") ||
shExpMatch(host, "s1.2mdn.net") ||
shExpMatch(host, "googleads.g.doubleclick.net") ||
shExpMatch(host, "ad.doubleclick.net") ||
shExpMatch(url, "http*://www.facebook.com/plugins/like_box.php?*") ||
shExpMatch(url, "http*://www.facebook.com/plugins/recommendations_bar.php?*"))
return "PROXY 8.8.8.8:53";
else
return "DIRECT";
}
存成例如adblock.pac,然後在Fx的网路设定选「Proxy自动设定网址」,
file:///C:/firefox/profiles/adblock.pac
就可以挡掉youtube的影片广告。
这个pac的作用是当连到上面这几个google的广告伺服器时,
会经过我们设定的代理伺服器,而这个代理伺服器是无效的,
所以不会成功传回这些广告,广告就被我们挡掉啦。
这种故意设定的无效的代理伺服器称为blackhole proxy,
可以设定为127.0.0.1:3421等等,各种不存在的代理。
上面是仿照webblock设为8.8.8.8:53,
大家知道这是google的DNS伺服器,从各地连都很快,
而且这个伺服器不支持http连线,所以我们的请求会立刻断线,
很快就传回断线讯息,正好符合我们blackhole proxy的需求!
除了利用google的DNS以外,也可以用blackholeproxy.exe
或类似的程式,在本地建立一个blackhole proxy,
传回一个1x1的透明gif,取代原本的断线讯息。
用pac比直接改host的好处是写法弹性比较大,
添加新规则後重起浏览器就可以更新作用。
不过像上面这种一个一个匹配规则的写法,几个几百个是没关系,
如果规则多到几千个,整个运作效率就会变得很差。
例如把adblock的list直接转成pac,多达几千行的匹配规则,
整个载入速度反而会变慢,这时需要比较好的匹配判断写法,
可以参考goagent或shadowsocks的pac写法,运作效能会比较好。
如果使用Privoxy+adblock plus list的话,就不需要几千行的pac,
因为大部分广告都会被adblock plus的规则挡掉,
只有少数https的广告需要另外写进pac里,所以不用担心这个问题。
使用这类软体还有其他缺点,例如可能ipv6无法正常连线等等,
如果系统记忆体不缺乏的话,其实让adblock多吃一点记忆体是无妨,
只是运作效率还是有很大的进步空间,只能期待adblock plus的开发团队
和Mozilla携手合作,一起改善adblock plus的执行效率和消耗的资源。
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 61.219.36.91
※ 文章网址: http://webptt.com/cn.aspx?n=bbs/Browsers/M.1400943275.A.192.html
1F:推 rick:不推一个吗?! XD 05/24 23:11
2F:推 mihonisizumi:好专业 推一个... 05/24 23:24
3F:推 karst10607:好吧 那我来试试看 把adblock plus停一星期看看 05/24 23:31
4F:推 sheilarea200:每次开启浏览器 其他套件按钮都会先显示出来 然後顿 05/25 00:04
5F:→ sheilarea200:了一下 ABP的才冒出来....原来是这个原因吗 05/25 00:05
楼楼上那个是adblock plus新版的功能 延迟载入
因为adblock启动需要读取规则和隐藏元素的样式
档案很大 会载入很久 firefox因为adblock这个载入
造成每次启动到完成显示浏览介面要等很久
许多使用者误以为firefox很烂 启动速度超慢
其实Fx启动速度够快了 会变这麽慢其实是adblock
拖累的 所以新版的adblock plus在启动时会延迟载入
让Fx的介面先显示出来,再慢慢载入adblock plus
这样可以加快Fx重新启动的速度 但是也有缺点
那就是刚启动的时候adblock还没有作用,
所以这时如果载入网页 例如有设定启动时自动载入
先前的浏览状态 这些刚启动时就网页无法过滤到广告,
需要跳过快取重整 才能看到去广告的效果
所以也有人认为延迟载入是个没什麽用的功能
主要还是adblock plus太慢了。
6F:推 abc0:专业!! 请问Chrome上的Adblock +也会这样子吗? 05/25 00:08
chrome上的adblock plus同样也是这样子,
chrome上有人正在开发运作效率比较好的扩充,
我忘了叫什麽名字了,好像快几倍省三倍的样子。
对了,我忘了说,chrome关掉adblock,开那个测试网页,
在没有adblock的情况下就会吃掉1.9GB的记忆体@@
7F:推 Daniel66:wow 05/25 00:17
当然还有许多替代方案,例如我上面说的privoxy+adblock
https://github.com/skroll/privoxy-adblock
或者是用去掉隐藏样式的list规则减少css的负担
https://easylist.adblockplus.org/en/
里面有View EasyList without element hiding的规则
※ 编辑: mayuyu (61.219.36.91), 05/25/2014 00:27:35
8F:推 griffenchen:这个不推不行, 太专业了 05/25 00:27
9F:推 hijacker:达人 05/25 00:40
10F:推 pabubai:推 05/25 00:54
11F:推 skyhawkptt:好专业!!好深入 05/25 00:58
13F:推 hohiyan:我用 adguard 记忆体用量约都在 90-100mb之间 05/25 01:26
14F:→ mayuyu:作者和adblock plus的主开发者正发生论战xD 05/25 01:26
15F:→ mayuyu:adguard的主程式用量大概100MB 但是他还有一个服务 05/25 01:30
16F:→ mayuyu:一定要开着 这个服务也要占用100MB 05/25 01:30
17F:→ mayuyu:所以总共要用掉200MB 不过adguard真的非常好用 05/25 01:30
18F:→ mayuyu:预设的规则就可以过滤大部分的广告 05/25 01:30
19F:→ mayuyu:可以过滤IE11 Win8 Metro 可以过滤https 05/25 01:30
20F:→ mayuyu:是我看过最全面的过滤软体 05/25 01:31
21F:→ dabeniao:不知道 Ghostery 的效能、效果如何? 05/25 02:03
没用过 不知道除了隐私追踪保护以外 这个能不能过滤广告?
※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※
22F:推 FantasyNova:我总选举有投你啊 !!!!!!!!!!!!!! 05/25 02:06
大家加油! 今年一定要站上顶点!!
http://i.minus.com/iBSKNgWT0p4wd.jpg
※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※
23F:推 Famicom:请问有比较简单的教学可以看吗._./ 05/25 05:33
可以装上面或下面提到的现成的软体套用adblock的规则+pac
24F:推 ji394xu3:我已经不用挡广告的任何外挂很久了 ~~反正看个广告无差 05/25 06:46
只要不会妨碍到网页浏览或阻挡影片观赏的广告,或者不是弹窗炸弹的广告,
很多广告其实我都可以接受,不一定要赶尽杀绝。
把adblock plus拿掉,发现Fx反应变得那麽快速和轻便,
才发现原来挡那麽多广告反而拖累浏览的体验。
25F:推 hirokofan:专业 05/25 08:18
26F:推 doom3:有人试过AdFender吗? 05/25 08:56
AdFender很不错,可以自动更新直接套用easy list+china list,
自定义规则写法和adblock一样,系统可以再加挂其他proxifier <- 对我来说很重要
记忆体使用量大概和Ad Muncher差不多30MB,
以前载入网页会有点卡卡的,新版有改进效能,降低CPU使用率。
firefox长时间使用记忆体使用量也有明显下降,可以过滤IE11。
缺点还是没有开放程式码,这类程式都有高度风险 ><
不能过滤IE11+Enhanced Protected Mode/64-bit或Metro,
不能过滤https,不过可以用上面提到的pac方法来另外挡https的广告,
反正https的场合也很少,就youtube、gmail、facebook那几个。
还有和Privoxy直接套用adblock的缺陷一样,有些网页会被误判整个杀掉,
完全开不起来变成一片空白,例如
http://ppt.cc/iWt~
遇到这种情况可以暂时停用AdFender的过滤来解决,
不过AdFender不能从拖盘图示双击来立刻暂时停用有点可惜,
否则会更方便。
27F:推 pttdog: 我的火狐实在太吃记忆体 我决定砍了Adblock Plus 05/25 08:59
※ 编辑: mayuyu (61.219.36.171), 05/25/2014 11:03:16
28F:→ stonemonkey:chrome新的挡广告出了吗,叫什麽名字啊... 05/25 13:22
你是指httpswitchboard吗?
Chrome web store
http://ppt.cc/O4Xs
Opera web store
http://ppt.cc/MaJw
29F:推 kaoh08:我Fx後来也砍ABP了 速度有差 跳GC之後也没装 本文是救赎呀 05/25 13:58
刚看到卡饭上adbyby的作者说adbyby可以直接订阅和更新
adblock的规则,在adhook.ini里面加上
[exrule]
https://easylist-downloads.adblockplus.org/easylistchina+easylist.txt
每行一个list,可以新增多个list,
每次启动会检查list的档案大小,有改变就会自动下载更新。
这样就可以取代原本的lazy规则,把lazy.txt清空後设成唯读,
或者像前面说的设定不要自动更新lazy规则
[update]
rule=lazy,video
把lazy去掉即可,这样就不会重复太多相同的规则。
不过作者也提到直接套用adblock的规则会有误杀的情况。
还有AdFender同样会使得ipv6无法连线,
我觉得AdFender也是从Privoxy修改来的w
※ 编辑: mayuyu (61.219.36.186), 05/25/2014 14:47:08
30F:推 nimiq5566:专业文必需推 05/25 15:07
31F:推 ThisIsNotKFC:强大推! 05/25 17:10
32F:推 oscar721:推 05/25 18:26
33F:推 hpo14:强大推 05/25 18:58
34F:推 oversky0:还有一个 SimpleBlock, 可以用 opera 的 list 05/25 21:47
35F:→ oversky0:不过和 Bluhell firewall 一样,会有挡错的问题。 05/25 21:48
36F:→ oversky0:但又不能设定那一个站要挡,使用上不方便。 05/25 21:49
37F:推 changtai:太强了 推 05/25 21:50
38F:推 BBBroflovski:请问View EasyList without element hiding的规则 05/25 22:40
39F:→ BBBroflovski:是删掉原本的规则 然後再新增那个就可以了吗? 05/25 22:41
是的 删掉原本的规则 订阅without element hiding
不要重复订阅相同的规则 规则越多负担越重
without element hiding会有一些原本用隐藏方法
藏起来的广告会跑出来 还有排版可能会不好看
但是大部分的广告还是一样可以挡掉
用without element hiding开上面的测试网页
Fx的记忆体使用量就会明显下降到500~600MB。
不过这个without element hiding只有EasyList版
中文区用的EasyList China没有without element hiding版
所以只好用暴力法 同样订阅原本的EasyList China+EasyList
到Fx的profiles\adblockplus个人设定资料夹下
把elemhide.css这个档案里面的内容清空 并且设为唯读
然後重开Fx Adblock Plus会再自动下载一个elemhide.css.tmp
可是写不进去elemhide.css 虽然由於Adblock Plus效能的关系
还是会很顿 可是记忆体使用量会大幅下降
如果只要求降记忆体 可以暂时用这个方法 不过我还是把
Adblock Plus给停用了 停用的感觉一用就回不去了xD
40F:推 sate5232:来试试看Adguard好了 200MB我还可以接受 05/25 23:36
41F:推 sate5232:试用期好短! 05/26 00:08
Adguard有180天试用版 不过没有人维护中文区规则
我当初用的时候大部分网站都有挡掉 可是有少部分对岸很讨厌的广告要自己写规则
※ 编辑: mayuyu (61.219.36.196), 05/26/2014 00:19:46
42F:推 BBBroflovski:谢谢回答 既然还是很顿那我还是直接停用算了... 05/26 00:33
43F:推 sate5232:是那个什麽comss版本吗? 可是我装了後还是只到下个月初.. 05/26 00:53
44F:推 ThisIsNotKFC:原PO有研究sandboxie吗?我都把浏览器放里面跑 05/26 00:55
45F:推 sate5232:OK 我把原来的解除安装在安这个就有了 05/26 01:02
46F:→ mayuyu:我说很顿有点太夸张xD 就是平常使用adblock plus的速度 05/26 01:16
47F:→ mayuyu:虽然启动时adblock plus本身还是会占用80~100MB 05/26 01:17
48F:→ mayuyu:不过载入每个网页时的记忆体使用量会下降 05/26 01:17
49F:→ mayuyu:把elemhide.css.tmp也清空设成唯读 05/26 01:17
50F:→ mayuyu:启动时好像可以再减少几MB 05/26 01:17
51F:→ mayuyu:这个方法应该是降低记忆体使用又保留adblock 05/26 01:20
52F:→ mayuyu:更动系统最小的方法 不想做太大更动的人可以先试试看 05/26 01:20
53F:→ mayuyu:我有用sandboxie 测试时要不同版本多开我会用 05/26 01:20
54F:→ mayuyu:sandboxie开 不过平常浏览倒是没有用sandboxie 05/26 01:20
55F:推 ThisIsNotKFC:那可以问一下你的防毒软体(搭配)是? 05/26 01:22
56F:推 Famicom:如果是Win8使用者 个人建议还是别用Privoxy 05/26 03:16
57F:→ Famicom:用了之後市集app全部都会无法使用... 05/26 03:17
58F:→ Famicom:我想应该有设定可以避免这问题 但是就是不知道该怎麽作 05/26 03:17
59F:推 karst10607:以前启动adp版型才正确 现在不知道是广告商收敛了还是 05/26 07:25
60F:推 karst10607:趋势改变 停用adp版型反而比较正确 05/26 07:25
62F:→ b155073:不知道相比adblock、adblock plus有什麽差异 05/26 12:30
63F:推 b155073:官网写 will soon be released for Mozilla Firefox 05/26 12:32
64F:→ b155073:看来firefox 上面也会有免费的adguard套件可以用了! 05/26 12:32
65F:→ b155073:软体部分虽然效果很好 可是太贵了ORZ 05/26 12:33
67F:→ b155073:上面写可以写信去要Firefox的套件档案 目前在close beta中 05/26 12:35
69F:推 b155073:试了一下 adguard开测试网页 记忆体用量约250MB 05/26 12:40
71F:→ sate5232:有人用过这款吗 05/26 13:17
72F:推 karst10607:= = 停用以後 udn新闻网页有广告竟然是影音自动放 05/26 17:56
73F:推 jungleroamer:刚看了一下 我装的是 Adblock Edge 据它的说明 它也 05/27 17:29
74F:→ jungleroamer:是从 Adblock Plus 改来的 但我也不清楚之间的差异 05/27 17:30
75F:→ Wcw5504:Edge只是拿掉白名单吧 05/27 17:35
76F:推 sate5232:Adguard有办法加入ADP的规则吗 05/27 17:48
77F:推 timyau:现在平常都不开 Adblock Plus, 遇到太多广告的才开 05/27 18:27
78F:推 DDJJ1069:楼上的方法+1 推 05/27 20:01
79F:推 applewarm:大推~~~! 05/28 10:55
80F:推 xvid:有用卡巴斯基KIS也可以利用里面的广告横幅防护 效果也不错 05/28 13:47
81F:→ xvid:且不太影响浏览器速度 05/28 13:47
82F:推 karst10607:我又开adp了 囧 充满影音自动放的广告 真是可怕 05/28 21:00
83F:推 sate5232:我用了bloxy 可以用ADP规则 05/29 16:19
84F:→ sate5232:Adguard对於对岸网站的效果实在不理想,但好处是可以像 05/29 16:19
85F:→ sate5232:ADP一样选择元素 05/29 16:19
86F:推 snocia:那个Bluhell Firewall套件...试用了一下,我不知道他挡了啥 05/31 15:18
87F:→ snocia:还是一堆广告 ( ‵□′)───C<─___-)||| 05/31 15:19
88F:→ YONIQ:他至少挡了youtube in-video的广告 05/31 20:42
89F:推 Churi:麻友友要得第一!! 06/01 02:23
90F:→ dabeniao:bluhell 是用 EasyList 的规则,所以中文网站就无法了 06/02 14:22
91F:推 p890:有点长… 不过重点就是ADB太耗资源?! 06/04 00:39
92F:推 wuliou:专业推 06/06 13:34
93F:→ mmis1000:adblock 跟 adblock plus 是不同作者阿 06/08 18:34
94F:推 ThisIsNotKFC:恭喜原PO登顶! 06/08 23:39
95F:推 kipi91718:最近常常会因为记忆体吃太大当掉…唉 06/09 17:40