看板 Browsers 關於我們 聯絡資訊
※ 引述《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://www.ptt.cc/bbs/Browsers/M.1400943275.A.192.html
rick:不推一個嗎?! XD 05/24 23:11
mihonisizumi:好專業 推一個... 05/24 23:24
karst10607:好吧 那我來試試看 把adblock plus停一星期看看 05/24 23:31
sheilarea200:每次開啟瀏覽器 其他套件按鈕都會先顯示出來 然後頓 05/25 00:04
sheilarea200:了一下 ABP的才冒出來....原來是這個原因嗎 05/25 00:05
樓樓上那個是adblock plus新版的功能 延遲載入 因為adblock啟動需要讀取規則和隱藏元素的樣式 檔案很大 會載入很久 firefox因為adblock這個載入 造成每次啟動到完成顯示瀏覽介面要等很久 許多使用者誤以為firefox很爛 啟動速度超慢 其實Fx啟動速度夠快了 會變這麼慢其實是adblock 拖累的 所以新版的adblock plus在啟動時會延遲載入 讓Fx的介面先顯示出來,再慢慢載入adblock plus 這樣可以加快Fx重新啟動的速度 但是也有缺點 那就是剛啟動的時候adblock還沒有作用, 所以這時如果載入網頁 例如有設定啟動時自動載入 先前的瀏覽狀態 這些剛啟動時就網頁無法過濾到廣告, 需要跳過快取重整 才能看到去廣告的效果 所以也有人認為延遲載入是個沒什麼用的功能 主要還是adblock plus太慢了。
abc0:專業!! 請問Chrome上的Adblock +也會這樣子嗎? 05/25 00:08
chrome上的adblock plus同樣也是這樣子, chrome上有人正在開發運作效率比較好的擴充, 我忘了叫什麼名字了,好像快幾倍省三倍的樣子。 對了,我忘了說,chrome關掉adblock,開那個測試網頁, 在沒有adblock的情況下就會吃掉1.9GB的記憶體@@
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
griffenchen:這個不推不行, 太專業了 05/25 00:27
hijacker:達人 05/25 00:40
pabubai:推 05/25 00:54
skyhawkptt:好專業!!好深入 05/25 00:58
mayuyu:我找到chrome的那個新擴充 http://ppt.cc/FOhs 05/25 01:26
hohiyan:我用 adguard 記憶體用量約都在 90-100mb之間 05/25 01:26
mayuyu:作者和adblock plus的主開發者正發生論戰xD 05/25 01:26
mayuyu:adguard的主程式用量大概100MB 但是他還有一個服務 05/25 01:30
mayuyu:一定要開著 這個服務也要佔用100MB 05/25 01:30
mayuyu:所以總共要用掉200MB 不過adguard真的非常好用 05/25 01:30
mayuyu:預設的規則就可以過濾大部分的廣告 05/25 01:30
mayuyu:可以過濾IE11 Win8 Metro 可以過濾https 05/25 01:30
mayuyu:是我看過最全面的過濾軟體 05/25 01:31
dabeniao:不知道 Ghostery 的效能、效果如何? 05/25 02:03
沒用過 不知道除了隱私追蹤保護以外 這個能不能過濾廣告? ※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※
FantasyNova:我總選舉有投你啊 !!!!!!!!!!!!!! 05/25 02:06
大家加油! 今年一定要站上頂點!! http://i.minus.com/iBSKNgWT0p4wd.jpg
※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※
Famicom:請問有比較簡單的教學可以看嗎._./ 05/25 05:33
可以裝上面或下面提到的現成的軟體套用adblock的規則+pac
ji394xu3:我已經不用擋廣告的任何外掛很久了 ~~反正看個廣告無差 05/25 06:46
只要不會妨礙到網頁瀏覽或阻擋影片觀賞的廣告,或者不是彈窗炸彈的廣告, 很多廣告其實我都可以接受,不一定要趕盡殺絕。 把adblock plus拿掉,發現Fx反應變得那麼快速和輕便, 才發現原來擋那麼多廣告反而拖累瀏覽的體驗。
hirokofan:專業 05/25 08:18
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不能從拖盤圖示雙擊來立刻暫時停用有點可惜, 否則會更方便。
pttdog: 我的火狐實在太吃記憶體 我決定砍了Adblock Plus 05/25 08:59
※ 編輯: mayuyu (61.219.36.171), 05/25/2014 11:03:16
stonemonkey:chrome新的擋廣告出了嗎,叫什麼名字啊... 05/25 13:22
你是指httpswitchboard嗎? Chrome web store http://ppt.cc/O4Xs Opera web store http://ppt.cc/MaJw
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
nimiq5566:專業文必需推 05/25 15:07
ThisIsNotKFC:強大推! 05/25 17:10
oscar721:推 05/25 18:26
hpo14:強大推 05/25 18:58
oversky0:還有一個 SimpleBlock, 可以用 opera 的 list 05/25 21:47
oversky0:不過和 Bluhell firewall 一樣,會有擋錯的問題。 05/25 21:48
oversky0:但又不能設定那一個站要擋,使用上不方便。 05/25 21:49
changtai:太強了 推 05/25 21:50
BBBroflovski:請問View EasyList without element hiding的規則 05/25 22:40
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
sate5232:來試試看Adguard好了 200MB我還可以接受 05/25 23:36
sate5232:試用期好短! 05/26 00:08
Adguard有180天試用版 不過沒有人維護中文區規則 我當初用的時候大部分網站都有擋掉 可是有少部分對岸很討厭的廣告要自己寫規則 ※ 編輯: mayuyu (61.219.36.196), 05/26/2014 00:19:46
BBBroflovski:謝謝回答 既然還是很頓那我還是直接停用算了... 05/26 00:33
sate5232:是那個什麼comss版本嗎? 可是我裝了後還是只到下個月初.. 05/26 00:53
ThisIsNotKFC:原PO有研究sandboxie嗎?我都把瀏覽器放裡面跑 05/26 00:55
sate5232:OK 我把原來的解除安裝在安這個就有了 05/26 01:02
mayuyu:我說很頓有點太誇張xD 就是平常使用adblock plus的速度 05/26 01:16
mayuyu:雖然啟動時adblock plus本身還是會佔用80~100MB 05/26 01:17
mayuyu:不過載入每個網頁時的記憶體使用量會下降 05/26 01:17
mayuyu:把elemhide.css.tmp也清空設成唯讀 05/26 01:17
mayuyu:啟動時好像可以再減少幾MB 05/26 01:17
mayuyu:這個方法應該是降低記憶體使用又保留adblock 05/26 01:20
mayuyu:更動系統最小的方法 不想做太大更動的人可以先試試看 05/26 01:20
mayuyu:我有用sandboxie 測試時要不同版本多開我會用 05/26 01:20
mayuyu:sandboxie開 不過平常瀏覽倒是沒有用sandboxie 05/26 01:20
ThisIsNotKFC:那可以問一下你的防毒軟體(搭配)是? 05/26 01:22
Famicom:如果是Win8使用者 個人建議還是別用Privoxy 05/26 03:16
Famicom:用了之後市集app全部都會無法使用... 05/26 03:17
Famicom:我想應該有設定可以避免這問題 但是就是不知道該怎麼作 05/26 03:17
karst10607:以前啟動adp版型才正確 現在不知道是廣告商收斂了還是 05/26 07:25
karst10607:趨勢改變 停用adp版型反而比較正確 05/26 07:25
b155073:發現chrome上面adguard的免費套件 http://goo.gl/h7dQ4k 05/26 12:29
b155073:不知道相比adblock、adblock plus有什麼差異 05/26 12:30
b155073:官網寫 will soon be released for Mozilla Firefox 05/26 12:32
b155073:看來firefox 上面也會有免費的adguard套件可以用了! 05/26 12:32
b155073:軟體部分雖然效果很好 可是太貴了ORZ 05/26 12:33
b155073:上面寫可以寫信去要Firefox的套件檔案 目前在close beta中 05/26 12:35
b155073:firefox部分在這 http://goo.gl/uVk1fP 05/26 12:37
b155073:試了一下 adguard開測試網頁 記憶體用量約250MB 05/26 12:40
sate5232:有人用過這款嗎 05/26 13:17
karst10607:= = 停用以後 udn新聞網頁有廣告竟然是影音自動放 05/26 17:56
jungleroamer:剛看了一下 我裝的是 Adblock Edge 據它的說明 它也 05/27 17:29
jungleroamer:是從 Adblock Plus 改來的 但我也不清楚之間的差異 05/27 17:30
Wcw5504:Edge只是拿掉白名單吧 05/27 17:35
sate5232:Adguard有辦法加入ADP的規則嗎 05/27 17:48
timyau:現在平常都不開 Adblock Plus, 遇到太多廣告的才開 05/27 18:27
DDJJ1069:樓上的方法+1 推 05/27 20:01
applewarm:大推~~~! 05/28 10:55
xvid:有用卡巴斯基KIS也可以利用裡面的廣告橫幅防護 效果也不錯 05/28 13:47
xvid:且不太影響瀏覽器速度 05/28 13:47
karst10607:我又開adp了 囧 充滿影音自動放的廣告 真是可怕 05/28 21:00
sate5232:我用了bloxy 可以用ADP規則 05/29 16:19
sate5232:Adguard對於對岸網站的效果實在不理想,但好處是可以像 05/29 16:19
sate5232:ADP一樣選擇元素 05/29 16:19
snocia:那個Bluhell Firewall套件...試用了一下,我不知道他擋了啥 05/31 15:18
snocia:還是一堆廣告 ( ‵□′)───C<─___-)||| 05/31 15:19
YONIQ:他至少擋了youtube in-video的廣告 05/31 20:42
Churi:麻友友要得第一!! 06/01 02:23
dabeniao:bluhell 是用 EasyList 的規則,所以中文網站就無法了 06/02 14:22
p890:有點長… 不過重點就是ADB太耗資源?! 06/04 00:39
wuliou:專業推 06/06 13:34
mmis1000:adblock 跟 adblock plus 是不同作者阿 06/08 18:34
ThisIsNotKFC:恭喜原PO登頂! 06/08 23:39
kipi91718:最近常常會因為記憶體吃太大當掉…唉 06/09 17:40