作者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/m.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