トップページsoftware
1001コメント396KB

【CSS】Mozilla広告ブロック【Adblock】

■ このスレッドは過去ログ倉庫に格納されています
0001名無しさん@お腹いっぱい。2006/08/01(火) 12:41:46ID:IsoaU6wd0
フィルタをアップするときに書き込む項目(推奨)
・フィルタを適用したブラウザ
・ブロックに使用した手段
・ブロックされる広告の説明
・フィルタ

過去のスレッド
Mozilla Firefox Adblockフィルター スレッド Part1
http://pc7.2ch.net/test/read.cgi/software/1131101772/
0733名無しさん@お腹いっぱい。2007/04/13(金) 11:40:38ID:HGX/pVAJ0
>>729
アップされてる同期フィルタ群を見る限り、正規表現は推奨されてないっぽいけど。
フランスのみたく正規表現のみなんてのもあるけど、使ってもリスト内の1,2割程度なのが多い。

ttp://adblockplus.org/en/subscriptions
0734名無しさん@お腹いっぱい。2007/04/13(金) 12:00:07ID:wDybXcFE0
>>732
>>725-727
0735名無しさん@お腹いっぱい。2007/04/13(金) 12:58:32ID:9ue/Z7Zv0
今日は風が強いなあ。

>>702
shortcut の利点は無意味なフィルタのチェックをしないことにあるから、
全てのフィルタが100%ヒットする条件下ではむしろ無駄な処理になる。
そのテスト用のページにヒットしないフィルタを大量に加えると
通常のフィルタなら shortcut のお陰でほとんど悪影響を出さないが、
shortcut が作れないフィルタや正規表現のものはその数に比例して
Adblock Plus のパフォーマンスを下げると思われ。

>>720
それじゃあまあ、そのうち他の疑問もひっくるめてまとめて聞いてみる。
流れ的に「今更正規表現っすかwwww」で流されそうな気もするがw
何か考えがあっての事かも知れんしな。

>>724
ワイルドカードで区切られていない8文字というのが shortcut 成立の条件で、
>>699の『http://*.a8.net/$image,link』の場合は『.a8.net/』の部分が8文字なのでおk。
これが『.a8.net』だったら7文字しかないことになるから、
前か後ろに http:// でも / でもとにかく何か付けて8文字以上にしないといけない。
で、『http://*』のところは誤爆回避の役にも立たんと思われるので
それなら『.a8.net/$image,link』だけでよくね?と。
http://』って7文字だから shortcut にも使えんしね。
0736名無しさん@お腹いっぱい。2007/04/13(金) 12:59:25ID:9ue/Z7Zv0
>>729
あの和訳は自分が理解するために作ったもので他人のためのものじゃないから、
このまま埋もれてしまっても別に俺は勿体なくないw
それに和訳のクオリティが不十分だから、表に出すなら
何人かの英語に堪能で Adblock Plus の挙動に詳しい人達による添削が必要。
あと、あのまとめサイトは Adblock と Adblock Plus を一緒くたにしていて
Plus のみに向けた記述は書きにくい。
まあこの辺をクリアできるならどこに転載されても俺は構わんよ。

で、質問の答えだけど、
普通のフィルタがいくつあっても shortcut が作れるものであれば速度上はほとんど問題ない。
shortcut が作れないフィルタや正規表現のものはその数に応じて重くなる。
複雑な正規表現をいくつかのシンプルな正規表現にすることは速度を向上させる『かも知れない』。
ただし基本的には100個の普通のフィルタ>>>1個の正規表現なので、
いくつかの普通のフィルタをひとつの正規表現にまとめるようなことはしない方が良い。
0737名無しさん@お腹いっぱい。2007/04/13(金) 13:11:44ID:9ue/Z7Zv0
>>731
多分その通りだと思う。可読性と誤爆回避と速度のトレードオフだね。

ただ、懸念として例えばフィルタがこの3つ↓
.a8.net/*/hage/
.a8.net/*/hoge/
.a8.net/*/huge/
↑の場合は shortcut は最初の1つだけに作成される。
つまり1つの shortcut に複数のフィルタが対応することはできないっぽいので、
あまり余裕のないフィルタリストを作ると
どこかで意図せずに shortcut からはみ出るフィルタが出てしまうかも知れない。
これが『ias.rakuten.co.jp$script』なら Adblock Plus は
"ias.raku" から "en.co.jp" までの合計10パターンから選ぶことができるから
似たようなフィルタを他に作っても上手く住み分けができるだろうが。

>>733
Fanboy’s List と adblock.free.fr には注意書きとして
『このリストは Plus には最適化されてないので重いです』と書いてあるね。
0738名無しさん@お腹いっぱい。2007/04/13(金) 13:38:53ID:3lmLf/0m0
内部的には普通のフィルタも正規表現に直してるのだから
今更もなにもないと思う。>>704の正規表現だって元は普通のフィルタだし。
0739名無しさん@お腹いっぱい。2007/04/13(金) 13:42:45ID:3lmLf/0m0
つまり>>704の変更をすれば普通のフィルタが早くなるってことじゃない?
0740名無しさん@お腹いっぱい。2007/04/13(金) 14:08:21ID:N5nZ1Xv/P
一瞬コイツは何の話をしているのかとオモタ。
0741名無しさん@お腹いっぱい。2007/04/13(金) 18:27:27ID:9ue/Z7Zv0
今のところ Element Hiding に関しては Stylish もしくは userContent.css の方が速いっぽい。
まあ俺は Adblock Plus だけでも特に困ってないけど。


同期フィルタとして EasyList と EasyElement と dutchblock を購読している人が
「他に Filterset.G か何かも入れた方が良いか?」と相談した時の開発者達の返事。

http://adblockplus.org/forum/viewtopic.php?t=936

rick752(EasyList と EasyElement の作者):
「フィルタリストは小さいに越した事はないから、ぞれぞれ試して良さそうなのを選ぼう。
 後は引っ越ししないように頑張れ。
(環境の変化に伴ってネット上の行動範囲が変わると広告の傾向が変わるから?)」
Wladimir Palant(Adblock Plus 開発者):
「EasyList と dutchblock はどちらも全世界的に通用するリストで内容が被りまくりんぐ。
 併用しても大した効果は見込めないが誤爆その他のトラブルは2倍になる。
 なので購読はどれか1個だけにしとくのがマジお勧め。
 あと Adblock Plus で Filterset.G はとにかくヤメトメ」
dutchmega(dutchblock の作者):
「YOUもう Filterset.G は自動拒否にしちゃいなYO!」

ちなみに dutchblock は今は配信終了してる。
0742名無しさん@お腹いっぱい。2007/04/13(金) 23:54:25ID:9ue/Z7Zv0
何点か疑問に思っていたことを Wladimir Palant(Adblock Plus 開発者)に聞いてみた。

http://adblockplus.org/forum/viewtopic.php?p=10676

Q1.FAQ によると『banner』と『/banner/』は同義だそうですが、
『bannnner』と『/bannnner/』も同義になりますか?
 それともこの場合は shortcut によって『bannnner』がより高速になるのですか?
A1.高速になります。

Q2.FAQ によると『ad*banner.gif|』は内部的には /ad.*banner\.gif$/ という正規表現に変換されるそうですが、
 何で /ad.*?banner\.gif$/ じゃないんですか? その方が速くね?
A2.どんだけ速くなるか疑問。
 それに特定のマッチを取って終わりではなく全てのマッチを取ってる手前、大した違いもなかんべぇ。
(↑多分フィルタのヒットカウントの都合だな)

Q3.『http://*.ad.net/』の『http://*』部分は『@@|https://』というホワイトリストがあればあっても無駄?
A3.世の中には HTTP と HTTPS 以外にも FTP とか MMS とか色々プロトコルはあるわけだが、
 まあ確かにその『http://』にあまり意味がないという点には同意。
 理想を言えばこの "http://"; に続くワイルドカード(*)は ".ad.net" の部分をホストの一部分として解釈できるように
 "[^/]*"(つまり "/" 以外の任意の文字で構成される0文字以上の文字列)と解釈されるべきなのだが、
 残念ながら今のところそのようには動かない。
(↑つまり "http://hage.hoge/huge.ad.net"; 等が『誤爆』すると言いたいと思われ)
0743名無しさん@お腹いっぱい。2007/04/13(金) 23:56:14ID:9ue/Z7Zv0
Q4.以下のようなフィルタ↓
.ad.net/*/hage/
.ad.net/*/hoge/
.ad.net/*/huge/
↑は最初の1つだけが ".ad.net/" という shortcut を作るが、他のは shortcut を作れず正規表現と同等に遅くになる?
A4.Yes! Yes! Yes!

Q5.Adblock Plus の『項目を隠すルール(Element Hiding)』は Stylish や userContent.css を使うよりも遅い?
 あ、それでも漏れは Adblock Plus 使いますよ勿論ww
A5.やってることは何も変わらんのでパフォーマンスも変わらん。
 ちなみに Element Hiding Helper というアドオンを入れると『項目を隠すルール』の設定の手伝いしてくれる。
 これは実際の処理にはノータッチなので(そこは Adblock Plus が1人で全部やる)、
 これを入れても項目を隠すルールのパフォーマンスは悪化しないしマジお勧め。


ちなみに Element Hiding Helper とは『項目を隠すルール(Element Hiding)』の設定作業を支援するアドオン。
https://addons.mozilla.org/ja/firefox/addon/4364

丁度これが便利すぎたのでここに書こうと思ってたところでこんな事を書く Wladimir Palant は間違いなくエスパー。
0744名無しさん@お腹いっぱい。2007/04/14(土) 00:54:39ID:Cfy9Vn2v0
ワロタすごく便利>Element Hiding Helper
0745名無しさん@お腹いっぱい。2007/04/14(土) 01:14:40ID:xUY1KOm60
>>735
> そのテスト用のページにヒットしないフィルタを大量に加えると

テストは他の余計な要素がなく、以下のような感じでフィルタが1つしかない
状態でそれぞれ行ったよ。
ttp://f39.aaa.livedoor.jp/~hitomin/up/img/hitotan143.jpg

>>742
> ".ad.net" の部分をホストの一部分として解釈できるように

".ad.net$hostname"みたいに出来れば良いのにね。非正規表現の場合は少
しでも誤爆を防ぐために".ad.net/"みたいにするくらいしか出来ないのかな。
"http://ad.net:8080/";とかだったら…。


作者も「遅い」とか「速い」と言うだけではなく、作者の環境でいいからパターン
別に速度の違いを数値で示してくれれば分かり易いのになぁ…。
0746名無しさん@お腹いっぱい。2007/04/14(土) 06:17:43ID:zt6Ax5U40
公式にも特に書いてないからわからんのだけど「バナーのリンク先をチェックする」をONにすると
<a href=""> </a>の間を全部消せるから文字リンク消せたり広告まとめて消せたりして便利だけど
チェックする対象が増える分少しは遅くなるのかな?
ime.nuの大量の広告も個別に画像やオブジェクトを指定すると面倒だけど
i-cute.jp$linkとすればほとんど消せて便利
07476982007/04/14(土) 09:09:08ID:3/K+9yVQ0
>>742
乙。 .*? の問題の回答は正直意味不明。 たいした差が無いのは同意だが特定のマッチか全てのマッチか
とか関係無く .*? を使うべきなので。 .* を使うと無駄な処理が増えるだけでメリットは何も無いはずなのだが..。

>↑多分フィルタのヒットカウントの都合だな
上に書いた通りなのでこれも理解不能。 特定のマッチでもカウントは出来るだろうし。

まぁもし対応しても1万分の1秒くらいの違いしか無いだろうからもうこの話はやめよう。
他の質問も参考になった、サンクス。
0748名無しさん@お腹いっぱい。2007/04/14(土) 11:43:14ID:lp4kfE/W0
お、だんだんと本筋に戻ってきたぞ。
9ue/Z7Zv0 乙&GJ!
0749名無しさん@お腹いっぱい。2007/04/14(土) 14:07:13ID:5NdM3US90
> .*? の問題の回答は正直意味不明。

対応しても1万分の1秒くらいの違いしか無いだろうから
んなこたぁどうでもいいじゃん
って早い話、言われんだよ。バーカ!

相変わらず読解力のねー己の意見に固執した視野の狭い糞虫だなw
0750名無しさん@お腹いっぱい。2007/04/14(土) 14:18:41ID:JtpjcXmC0
ホントこれで尻尾まいて消えてくれれば良いんだけど
次回からしったかな小馬鹿にしたレスをつけてきても
どーせ又コイツなんだと判すぐに明するからallスルーでいいんジャマイカ
0751名無しさん@お腹いっぱい。2007/04/14(土) 14:22:35ID:3/K+9yVQ0
弱い犬ほど良く吠える。
0752名無しさん@お腹いっぱい。2007/04/14(土) 14:24:10ID:LpU23rb00
Element Hiding Helperすげーね。
Firebugで似たような事やってたけど更に楽になった。
0753名無しさん@お腹いっぱい。2007/04/14(土) 14:25:00ID:JtpjcXmC0
( ´,_ゝ`)プッそれ自分のことじゃん
0754名無しさん@お腹いっぱい。2007/04/14(土) 14:30:15ID:6+RRznjK0
09:09:08
14:22:35
まさに粘着ニートw
0755名無しさん@お腹いっぱい。2007/04/14(土) 19:24:13ID:/11juWvX0
スルーしとこうぜ。
0756名無しさん@お腹いっぱい。2007/04/14(土) 20:23:02ID:3/K+9yVQ0
なんでこんなに厨房率高いんだここは。 上のほうでも書いたがスキル不足の奴が適当発言すると
スレがごちゃごちゃするからそういうのを書いたり反応したりするのは控えような。
つーかこの程度のことでマジギレするとかどんだけゆとりなんだよ。 >>749 おまえのことだ。
0757名無しさん@お腹いっぱい。2007/04/14(土) 20:45:57ID:c+VCGt090
煽ってるお前も同罪。せっかく有意義なスレになってたの台無し・・・
0758名無しさん@お腹いっぱい。2007/04/14(土) 21:52:37ID:3/K+9yVQ0
>>749が俺に粘着する限りずっとこうだぜ...。
0759名無しさん@お腹いっぱい。2007/04/14(土) 22:13:07ID:6RdpfCX60
>つーかこの程度のことでマジギレするとかどんだけゆとりなんだよ。
( ´,_ゝ`)プッそれ自分のことじゃん
0760名無しさん@お腹いっぱい。2007/04/14(土) 22:20:30ID:3/K+9yVQ0
その通り、おまえのことだ。
0761名無しさん@お腹いっぱい。2007/04/14(土) 22:29:19ID:6RdpfCX60
09:09:08
14:22:35
20:23:02
21:52:37
22:20:30
まさに粘着ニートw
0762名無しさん@お腹いっぱい。2007/04/14(土) 22:34:57ID:3/K+9yVQ0
↑まさに粘着ニートw
0763名無しさん@お腹いっぱい。2007/04/14(土) 22:35:43ID:3/K+9yVQ0
つーかさ、おまえは荒らすこと以外出来ないの?
0764名無しさん@お腹いっぱい。2007/04/14(土) 22:36:42ID:6RdpfCX60
( ´,_ゝ`)プッそれ自分のことじゃん
0765名無しさん@お腹いっぱい。2007/04/14(土) 22:37:28ID:3/K+9yVQ0
俺みたいに正規表現書いたり、上の人みたいに翻訳したり、そういうこのスレにとって
プラスになることは出来ないのかと。
0766名無しさん@お腹いっぱい。2007/04/14(土) 22:38:25ID:3/K+9yVQ0
出来ないなら黙って俺らのやることを乞食みたいに待ってればいい。 おまえにぴったりだろう。
0767名無しさん@お腹いっぱい。2007/04/14(土) 22:38:40ID:6RdpfCX60
( ´,_ゝ`)プッそれ自分のことじゃん
0768名無しさん@お腹いっぱい。2007/04/14(土) 23:02:34ID:3/K+9yVQ0
こいつ粘着やめる気なさそうだな、いつまでも荒れるぞこりゃ。
0769名無しさん@お腹いっぱい。2007/04/14(土) 23:05:20ID:6RdpfCX60
( ´,_ゝ`)プッそれ自分のことじゃん
0770名無しさん@お腹いっぱい。2007/04/14(土) 23:06:38ID:3/K+9yVQ0
きめぇ・・・・・
0771名無しさん@お腹いっぱい。2007/04/14(土) 23:08:03ID:6RdpfCX60
( ´,_ゝ`)プッそれ自分のことじゃん
0772名無しさん@お腹いっぱい。2007/04/14(土) 23:09:59ID:3/K+9yVQ0
いつまで粘着する気なのかな、この根暗クンは。
0773名無しさん@お腹いっぱい。2007/04/14(土) 23:10:28ID:6RdpfCX60
( ´,_ゝ`)プッそれ自分のことじゃん
0774名無しさん@お腹いっぱい。2007/04/14(土) 23:11:56ID:3/K+9yVQ0
( ´,_ゝ`)プッそれ自分のことじゃん
0775名無しさん@お腹いっぱい。2007/04/14(土) 23:13:45ID:6RdpfCX60
( ´,_ゝ`)プッ
0776名無しさん@お腹いっぱい。2007/04/14(土) 23:14:44ID:3/K+9yVQ0
( ´,_ゝ`)プッ
0777名無しさん@お腹いっぱい。2007/04/14(土) 23:15:24ID:6RdpfCX60
( ´,_ゝ`)プッ
0778名無しさん@お腹いっぱい。2007/04/14(土) 23:16:01ID:3/K+9yVQ0
( ´,_ゝ`)プッ
0779名無しさん@お腹いっぱい。2007/04/14(土) 23:16:30ID:6RdpfCX60
( ´,_ゝ`)プッ
0780名無しさん@お腹いっぱい。2007/04/14(土) 23:17:04ID:3/K+9yVQ0
( ´,_ゝ`)プッ
0781名無しさん@お腹いっぱい。2007/04/14(土) 23:18:12ID:6RdpfCX60
( ´,_ゝ`)プッ
0782名無しさん@お腹いっぱい。2007/04/14(土) 23:24:06ID:3/K+9yVQ0
リロード乙。 ばーかw
0783名無しさん@お腹いっぱい。2007/04/14(土) 23:24:38ID:6RdpfCX60
( ´,_ゝ`)プッそれ自分のことじゃん
0784名無しさん@お腹いっぱい。2007/04/14(土) 23:28:50ID:pDgLQSL70
>>742-743の続き。

Adblock Plus Fan:
 Q4についてだけど↓
.ad.net/*/hage/
.ad.net/*/hoge/78
↑の2つの場合はどちらも速いフィルタになる?

Wladimir Palant:
 場合による。
 下のフィルタが Adblock Plus の中で上より先に処理され、
なおかつその際に ".ad.net/" という shortcut を作った場合は上の方は遅くなる。
 でも現実的にはこんなことは滅多に起らないのでいちいち気にすることでもない。
0785名無しさん@お腹いっぱい。2007/04/14(土) 23:30:58ID:pDgLQSL70
>>745
速く/遅くなる理由は説明されてるんだからベンチは自前で用意すればよかろ。

ポートやらについては原理的にどうしようもないね。
それに対応するために速度が犠牲になったらデメリットの方がでかいだろうし。

>>746
多分その通り。

>>747
小規模な変更で実現できるはずだから
試しにやってみて有意な効果を見出せなかったんだろう。
今はひとつの URL にマッチするフィルタが複数ある場合でも
最初にマッチしたひとつ以外はスルーされてるけど、
将来的にはそこにマッチした全てのフィルタを表示する機能でも考えてるんじゃないのかね。
0786名無しさん@お腹いっぱい。2007/04/15(日) 00:02:54ID:7Ku42UnP0
   _、_
 ( ,_ノ` )      n
 ̄     \    ( E) グッジョブ!!
フ     /ヽ ヽ_//
0787名無しさん@お腹いっぱい。2007/04/15(日) 00:33:22ID:p2ASdhOI0
というわけで超適当にベンチ計ってみますたよ。

Firefox の仕様:
OS X 版の Firefox 2.0.0.3 に Adblock Plus と Fasterfox だけオン。

チェックに使用した HTML ファイル(test.html):
<html>
<body>
<img src="http://localhost/bana/000.jpg";>
<img src="http://localhost/bana/001.jpg";>
(中略)
<img src="http://localhost/bana/499.jpg";>
<!-- 以下はダミー -->
<img src="http://localhost/noad/000.jpg";>
<img src="http://localhost/noad/001.jpg";>
(中略)
<img src="http://localhost/noad/499.jpg";>
</body>
</html>

ちなみに全ての画像は 404 Not Found が返る。
ダミーを用意したのはどうやらひとつのフィルタがヒットした URL に対する
残りのフィルタによるチェックがスキップされてるっぽいから。
(ヒットしないフィルタの影響がスルーされないように)
0788名無しさん@お腹いっぱい。2007/04/15(日) 00:35:40ID:p2ASdhOI0
用意したフィルタリストは次の8種類:
A.shortcut を作れるフィルタ(当たり500個) bana/000〜499
B.shortcut を作れるフィルタ(外れ500個) bana/500〜999
C.shortcut を作れないフィルタ(当たり500個) na/000〜499
D.shortcut を作れないフィルタ(外れ500個) na/500〜999
E.単純な正規表現(当たり500個) /bana\/000〜499/
F.単純な正規表現(外れ500個) /bana\/500〜999/
G.まとめた正規表現(当たり1個) /bana\/\d{3}/
H.まとめた正規表現(外れ1個) /bana\/\d{4}/

机上の空論:
・C≒E>A
(フィルタが全てヒットする条件だとAは shortcut 検索のステップがある分C・Eより僅かに遅い。
 またCとEは内部的には同一なのでほとんど差は出ない)
・A≒A+B
(Bはあってもなくてもほとんど問題にならない)
・D≒F
(DとFは内部的には同一なのでほとんど等しく重い)
・A+B>C+D≒E+F
(ヒットするフィルタとヒットしないフィルタが混在すると shortcut を作れるA+Bが優位に立つ。
 またC+DとE+Fは内部的には同一なのでほとんど差が出ない)
・E≧G『かも知れない』
(GのEに対する優位性はその正規表現の複雑さに依存するので一概には言えない)
0789名無しさん@お腹いっぱい。2007/04/15(日) 00:37:30ID:p2ASdhOI0
そして text.html の読み込みが完了するまでの時間
(5回程度リロードした時の最速タイム。単位は秒):

フィルタ無し:10.963

Aのみ:6.987
Bのみ:10.590
A+B:6.791

Cのみ:6.702
Dのみ:10.380
C+D:7.162

Eのみ:6.936
Fのみ:10.398
E+F:7.207

Gのみ:6.890
Hのみ:10.485
G+H:6.878

キャッシュがバリバリ効いているので無意味なデータかも知れない。
統計学的に信頼ができる代物でもない。

また、Firefox が動いているのと同じ Mac でローカルサーバも動かしたんで
ブロックされる要素が少ない条件下での読み込み時間が不当に増えてるかも知れない。
(それでも実際に外部のサーバにアクセスしてデータを受け取るよりは圧倒的に速いとは思うが)
0790名無しさん@お腹いっぱい。2007/04/15(日) 00:39:29ID:p2ASdhOI0
見ての通り、shortcut が作れるフィルタはいくつあっても速度的にはほとんど影響がないが、
shortcut が作れないフィルタや正規表現(特に『ヒットしないもの』)が大量にあると
処理は多少重くなる……と、言って良いものかどうか。
今回の条件では有意な差があるようには俺には見えん。もう1回やったら逆転してるかも。

使った正規表現が単純すぎて動作がそれほど重くならないためなのか
shortcut の優位性が今ひとつはっきりしないので
BとFの外れフィルタをそれぞれ10000個に増やしてみたりもしたんだけど、
やっぱりほとんど差は出ない。
『shortcut が作れるフィルタ>>> shortcut が作れないフィルタ≒正規表現≧複雑な正規表現』
という開発者の言葉に間違いがあるとは思わないが、
>>625が言ったように目で見て分かるほどの差があるわけではないのかも知れない。

でも shortcut が理論上ここからの速度低下がほとんど無いのに対して
正規表現はやりようによってはここから底抜けに鈍重になっていくことができる。
そういう意味ではやはり shortcut >>>正規表現は正しいのだろう。多分。
0791名無しさん@お腹いっぱい。2007/04/15(日) 00:57:06ID:/IoOWJW80
最近のCPUだとそれほど差に開きは出ないかもしれないが、一昔前のやつだと結果は目に見えて違いそうではあるな。
0792名無しさん@お腹いっぱい。2007/04/15(日) 03:20:34ID:YKj5vFY20
結局のところ人によって見るサイトとそれに対応するフィルタ、それらの数や組み
合わせなどが全部違うから、何が「速い」だの「遅い」だの言っても「場合による」
という曖昧な言葉か理論上の推測程度しか出ないよね。

これ以上ハッキリしないと思うので、こんな感じに受け止めておいた。

「速いとされている"shortcut"という機能があるから、それを有効に使うようにして
一般的に考えると遅くなりそうな正規表現はなるべく使わないようにした方が気分
的にも良いでしょう」
0793名無しさん@お腹いっぱい。2007/04/15(日) 03:25:10ID:pIDJ7wpT0
んだよ、もうやめたのかよ。根性なしが。
0794名無しさん@お腹いっぱい。2007/04/15(日) 04:08:04ID:I+4DokSC0
       ▂▃▃▃         ▃▃▃          _▂
       ▐:.  ░▌       ▌.  .▐         ▐:: ▌
       ▐:.  ░▌▃▃▃▃▃▃▃▌.  :▐        ▐:: ▌▂▁
      ▐░ ░░▌:.           ::▌      ▐░▂░▎▎▌
      ▐░▄◤▀             ::▀▃    ▌▂▂▌ ▎▎▌
       ▐▒░:.  ▅█▅        ▅█▅  ::▌   ▌░░▔▐▀
      ▐▒░: .  ▀█▀        ▀█▀  ::▌  ▐░   .:▌
    ▐▓▒░:.     ◢◤   ▅█▅ ◥◣    ::▌ ▐░   ▌
    ▐▓▒░: .    ░▌░▂░▀█▀ ▂▌   ::▐▂▌▒   ▌
    ▐▓▒░::    ░▀▐▒▐▓▌▒▌▀   ░▌▒░   ▌
    ▐▓▒░:: : .   ░▐▒▐▓▌▒▌    ::░▌░::   .:▌
  ▃◤▀ ░▓▒░:: :: : .  ░▐░░ ░▌       ::░░▃▀
▃▀▒░  .:░▓▒▒░::: .   ░▀◥▃▃◤      ::░▒▃▀
0795名無しさん@お腹いっぱい。2007/04/15(日) 08:34:59ID:3DuieSJN0
なんだなんだ、あぼ〜んだらけなんだが…まだやってるのかおまいら。
いい加減にしろよ。
そんな暇があるなら春休み返上で仕事をしてる俺を手伝え。
07966982007/04/15(日) 12:13:02ID:tdNKPzyj0
>>784-785
乙。 .ad.net/*/hage/、.ad.net/*/hoge/78 の問題はpatterns.iniを開いて手動で shortcut を
書き換えれば良いかと思ってやってみたんだけど、Firefoxを再起動すると元に戻ってしまった。
どうやらFFを起動するときに毎回再生成してるらしい。

同様にAdblockのフィルタ編集画面で「OK」か「適用」を押したときにも再生成された。
なので手動での shortcut の最適化は出来ないようだ。

>そこにマッチした全てのフィルタを表示する機能
これはあると便利だね。 フィルタの記述ミスがあれば見つけやすくなるし。

>>787-790
乙。 この計測方法でタイム差を明確に出すのは無理ぽということかな。
でも500行でもほとんど差が出ないということは、実用的には無視出来るレベルの問題だということだから
これが分かっただけでも良かったと思う。

それと、/bana\/\d{3}/ は /bana\/000〜499/ とほぼ同タイムになると思います。
厳密には \d{3} の部分での遅れは確実に出ますがこの場合は大した差にはなりません。
正規表現は先頭に複数の文字にマッチするものを置くと遅くなります。 ( .*、\w など)
上の実験では先頭に固定文字列を使っているので( bana\/ )、この部分がAdblockの shortcut と
同じような効果をもたらして早くなります。

ちなみに意図的に遅くするには
/(>|>|>|>|>|>|>|>|>|>|>|>|>|>|>|>|>|>|>|>|>| ・・・(すんごい長くする)・・・ |>|.)*bana\/\d{3}/
..のように一文字目の検索にかかる時間を稼ぐと良いです。 (これを500行書けば目に見えて遅くなるかも)
0797名無しさん@お腹いっぱい。2007/04/15(日) 15:24:50ID:lT7cM0bY0
記事を書いているライターさんも
ネットでサービスを提供している企業も
広告を収入源にしているのに
Firefox無料基地外はひどいな
0798名無しさん@お腹いっぱい。2007/04/15(日) 15:42:03ID:EoIG6zgf0
魅力のない広告ばかりだから問題無す
0799名無しさん@お腹いっぱい。2007/04/15(日) 16:39:12ID:/IoOWJW80
広告自体が問題なんじゃない。加減を知らずに広告を貼り付ける馬鹿ユーザーが問題。
一日数行程度のブログで残り全部アフィとか、もう死ねと言いたい。
0800名無しさん@お腹いっぱい。2007/04/15(日) 17:01:52ID:p2ASdhOI0
>>796
実際のマッチング処理の順番はともかくとしても、
shortcut を作る処理では普通にソート無しの状態のリストを上から順番にやってる。
testtest*1
testtest*2
testtest*3
なら『testtest*1』が shortcut=testtest を作るし
testtest*3
testtest*2
testtest*1
なら『testtest*3』が shortcut=testtest を作る。
つまりその方法でユーザ側で shortcut のコンフリクトを回避することは可能と言えば可能。
フィルタの書き方を工夫した方が速いだろうけど。
0801名無しさん@お腹いっぱい。2007/04/15(日) 17:03:06ID:p2ASdhOI0
ここまで正規表現を貶める必要も感じないんだけどなあ…。


適当ベンチ第2弾。

test2.html:
http://localhost/cfcd208495d565ef66e7dff9f98764da.jpg とか
http://localhost/c4ca4238a0b923820dcc509a6f75849b.jpg みたいな
ほぼランダムな32文字からなる img タグが1000個。

フィルタ:
K.shortcut を作れるフィルタ(当たり500個+外れ500個)
 『00411460f7c92d2124a67ea0f4cb5f85』とか。
L.単純な正規表現(当たり500個+外れ500個)
 『/00411460f7c92d2124a67ea0f4cb5f85/』とか。
M.悪意に満ちた正規表現(当たり500個+外れ500個)
 『/(00|3e|a0|…(中略)…|17|9c|b8|5)56f391937dfd4398cbac35e050a2177/』とか。

Mのフィルタはほぼランダムな2文字の文字列32個の後に当たりの1文字が1個+残りの部分。
全てのフィルタはソートしてあるので実際の html ファイルの画像と並び順が異なる。

この条件でやってみたが3つともほとんど差が出ない(どれも約12秒)。
0802名無しさん@お腹いっぱい。2007/04/15(日) 17:03:46ID:p2ASdhOI0
これはもしや……という事で、今度はキャッシュをオフにして測定してみる。

フィルタ無し:18.570
K:12.150
L:18.669
M:82.627 ← ワロス

N.Lを1個にまとめた正規表現
 『/(00411460f7c92d2124a67ea0f4cb5f85|006f52e9102a8d3be2fe5614f42ba989|(ry)/』

N:13.932

どう見ても差が出ないのはキャッシュが原因でした本当に(ry
よくよく考えてみたら Firefox が Adblock Plus が処理する前の html をキャッシュする意味なんざ無いもんな。
0803名無しさん@お腹いっぱい。2007/04/15(日) 17:15:06ID:p2ASdhOI0
>>787-790の実験をキャッシュ無しでやり直し。

フィルタ無し:17.586

Aのみ:12.229
Bのみ:17.886
A+B:11.990

Cのみ:15.309
Dのみ:23.658
C+D:20.446

Eのみ:15.169
Fのみ:21.780
E+F:15.686

Gのみ:11.701
Hのみ:17.395
G+H:11.679

C≒Eが単体でAに大きく劣るとかあり得ないはずのデータが出ててワロス。
あとどう見てもG速すぎ。
きっとまだどこかやり方がおかしいに違いない。

今のところのまとめ:
・shortcut はマジで速い。
・shortcut が作れるフィルタでヒットしないものが大量にあっても遅くならない。
・shortcut が作れないフィルタ(正規表現を含む)はマジで遅い。
・shortcut が作れないフィルタ(正規表現を含む)でヒットしないものが大量にあると物凄く遅い。
・複雑な正規表現は善し悪し。上手く使うと速度が上がるが下手に使うと底抜けに遅くなる。
・キャッシュが効いてるうちはフィルタの重い軽いはページの表示に影響しない。
0804名無しさん@お腹いっぱい。2007/04/15(日) 17:43:03ID:Dwg+H6P30
Adblock Plus: Element Hiding Helperを使ってみた。
cssがよく判ってない俺にとっては神。
08056982007/04/15(日) 23:56:37ID:tdNKPzyj0
>>800
なるほど、ショートカットを取らせたいフィルタを競合相手のフィルタより上に置けば良いのか。
これは分かりやすい、ありがとう。

>>801-803
M:82.627 ← ワロタw
キャッシュのせいでフィルタが効いてなかったのか、遅い正規表現を試したのが幸いしたね。

>C≒Eが単体でAに大きく劣る
これはどうしてこうなるのか分からないけど、

>どう見てもG速すぎ。
これは実際、Gのほうが早いのかも。 500個もフィルタがあると1個の正規表現のフィルタより遅くなっても
不思議じゃないかなと。 (>>687では100個と比較してるし)


(補足)

>>796で 「/bana\/\d{3}/ は /bana\/000〜499/ とほぼ同タイムになると思います。」 と書いたけど
>>803の結果を見るとこの場合は後者のほうが100倍以上遅いようだ。 (= >>687に書いてある通りの結果)

※ この100倍のタイム差が出るのは "\d{3}" の部分がテストされる場合のみなので
  その前にある固定文字列 "bana\/" を含まないURLをテストする場合はほぼ同タイムとなる。 ( B ≒ H )
  (実用上は "bana\/" にマッチするURLに出くわすことは少ないのでほぼ同タイムと書いた。)

※ 実用上、検索の速度で重要なのは当たりよりも外れの速度なので、ショートカットの有効性を調べるために
  最も注しするべきところは外れフィルタの B D F H のタイム。 >>803の結果では B より D のほうが
  5秒も遅いので B のショートカットが有効に働いていると思われます。

ということなので実験は成功と言っていいかも知れませぬ、お疲れ。
0806名無しさん@お腹いっぱい。2007/04/16(月) 00:50:49ID:3LyGzrUN0
計測厨ウゼーよ。ブログにでも書いてろ。
0807名無しさん@お腹いっぱい。2007/04/16(月) 00:54:11ID:MJ3njN3B0
小学生みたいなケンカ続けられるよりも全然有意義じゃないか。
0808名無しさん@お腹いっぱい。2007/04/16(月) 01:17:07ID:fDuEzeZ5P
それにこのベンチマークは理論上予測される挙動をほぼ正確になぞってるんだから
不自然な点が何故そうなるのかを説明する仮説が出るなり
別の人が試してこれと違う傾向が出るなりしない限りはこれで終わりだろ。

そんなことより次はいよいよ実用的なフィルタを研究する段だな!
0809名無しさん@お腹いっぱい。2007/04/16(月) 09:31:32ID:xuv+85w20
NTTwwww
0810名無しさん@お腹いっぱい。2007/04/16(月) 12:18:04ID:Od9Em3xR0
805=806
正体見たりw
0811名無しさん@お腹いっぱい。2007/04/16(月) 12:26:45ID:ckN61+dP0
>>808
>>803の不自然な点というと俺の中ではこれ↓
> C≒Eが単体でAに大きく劣る
↑だったわけだが、昨日布団の中で考え直してみて別に何も不思議じゃないことに気が付いた。

C≒Eが最大500個の正規表現を当たりが出るまでチェックするのに対して
Aは shortcut テーブルから一瞬で当たり候補を出せて、かつこのケースでは100%本当に当たりになる。
平均250個の正規表現をチェックするC≒Eに対して1回の shortcut 検索+1個の正規表現で済むんだから
良く考えなくてもC≒EよりもAの方が速いのは当たり前だ。

同じくGは shortcut すらすっ飛ばして正規表現1個で完結しているわけだから
平均250個の正規表現をチェックするC≒Eよりは圧倒的に速くても不思議はない。
正規表現自体の検索速度はAほどでは無いかも知れないが
shortcut の検索をすっ飛ばすから結果として差し引きとんとんになるという訳だな。

謎は全て解けた! ∩( ・ω・)∩ ばんじゃーい
08126982007/04/16(月) 16:50:42ID:V28w85ve0
>>811
なるほど、確かに。

>>787-788をよく読んでみると下の2つが矛盾してる。

1、
>ダミーを用意したのはどうやらひとつのフィルタがヒットした URL に対する
>残りのフィルタによるチェックがスキップされてるっぽいから。
>(ヒットしないフィルタの影響がスルーされないように)

2、
> ・C≒E>A
> (フィルタが全てヒットする条件だとAは shortcut 検索のステップがある分C・Eより僅かに遅い。
> またCとEは内部的には同一なのでほとんど差は出ない)

つまり、ダミーのせいで全てヒットするという条件が崩壊してる。 (ダミーの処理中は"当たり"でなく"外れ"になっている)
ダミーがあるせいで"当たり"の計測が正しく出来ていないと思われる("外れ"が混ざっているから)。

>ヒットしないフィルタの影響がスルーされないように
上記の理由からこれはスルーするべきなのでダミーはいらない。

さらに、「shortcut 検索のステップがあると遅くなるケース」 として考えられるのは
「フィルタリストの一番上が必ずヒットする」 という条件の場合のみ。
(二番目のフィルタがヒットするということは一番目がヒットしなかったということになる)
この条件が揃って初めて C≒E>A が成立する、ということだね。
0813名無しさん@お腹いっぱい。2007/04/16(月) 17:57:50ID:ckN61+dP0
>>812
俺の言いたかった事とおまいが読み取ったことの間には若干の食い違いがあるんだけど……めんどいからいいや。
どうせ結論は大して変わらん。
0814名無しさん@お腹いっぱい。2007/04/16(月) 18:00:36ID:ckN61+dP0
俺はもう十分に満足したんで、そろそろ>>606を若干手直ししたものを上げて終わりにしようと思う。
http://kasamatu.o0o0.jp/pochi/src/hajime12692.zip.html
受信パスはhoge。

まとめサイトに上げるなりしたけりゃご自由に。
ただし、なるべく>>736に書いたようなことをクリアしてからにして欲しい。
理想を言えば著作権とかややこしいことを気にせずにすむように
誰かが簡潔にまとめ直してくれるのが一番良い。

それじゃあおまいら、楽しい火狐ライフを ノシ
0815名無しさん@お腹いっぱい。2007/04/16(月) 18:26:54ID:2p0ka9aL0
ついでに使用フィルタもうp頼む!
0816名無しさん@お腹いっぱい。2007/04/16(月) 18:52:00ID:ckN61+dP0
>>815
http://kasamatu.o0o0.jp/pochi/src/hajime12695.zip.html
受信パスはhuge。
0817名無しさん@お腹いっぱい。2007/04/16(月) 19:05:38ID:2p0ka9aL0
>>816
まさか本当にうpしてくれるとは思わなかった
まじサンクス!!
0818名無しさん@お腹いっぱい。2007/04/16(月) 19:24:49ID:fDuEzeZ5P
しかしこのフィルタ、ノリノリである。

タイトル画像まで消されてしまって思わずブログも苦笑い。
08196982007/04/16(月) 21:40:44ID:V28w85ve0
>>813
食い違いは確かにあるな、一応書いとくか。

> Aは shortcut テーブルから一瞬で当たり候補を出せて
これはおそらく一瞬ではないと思う。 平均250回もshortcutを試しているはずなので。
(それでも平均250回の正規表現の検索と比べたら格段に早いのでこちらのほうが断然早くなる)

>C≒Eに対して1回の shortcut 検索+1個の正規表現で済むんだから
これは "平均250回の shortcut 検索"+"1個の正規表現" だと思う。

たぶん>>811 の 「shortcut検索1回」 は俺の言う 「平均250回のshortcut検索」 と同じ意味。
それ以外は同じことを別の角度から書いてるだけだと思う。

>>814>>816
お疲れ。
0820名無しさん@お腹いっぱい。2007/04/16(月) 22:03:47ID:fDuEzeZ5P
そこは普通ハッシュテーブルだろ、常識的に考えて…
08216982007/04/16(月) 22:36:05ID:V28w85ve0
>>820
そんなものがあったのか、初めて知った。 これなら確かに一瞬だ。
これを使うとフィルタ順ではなくハッシュ順になるからAdblockの中でフィルタの順番が変わるということかな。
0822名無しさん@お腹いっぱい。2007/04/16(月) 23:04:37ID:fDuEzeZ5P
前から薄々感じていたが今になって確信した。
君は自分が何を言ってるのかもう少しじっくり考えてから書き込んだ方がいい。
分かってないのに分かったような口をきくから(゚Д゚)ハァ?って顔をされる。
これでは和訳の人も難儀した事だろう。
0823名無しさん@お腹いっぱい。2007/04/16(月) 23:59:50ID:V28w85ve0
そんなのは誰にでもあるだろ。 俺だって .*? が使われない理由を聞いてハァ?と思ったし。
0824名無しさん@お腹いっぱい。2007/04/17(火) 00:55:49ID:wWcpcR5b0
うぜぇまだいたのか
0825名無しさん@お腹いっぱい。2007/04/17(火) 02:08:21ID:mqjBscozP
まーたそうやって分かってないのに分かったような顔をする。
俺らがハァ?ってなるのもお前がハァ?ってなるのも、元を正せば
どちらもお前の知識が怪しいからだって事にいい加減気付けよ
0826名無しさん@お腹いっぱい。2007/04/17(火) 02:30:29ID:3nKc6BMQ0
君も本当に俺が間違ってるのかどうか分からないくせに分かったような口をきいてるよな。 いい加減うざいぞ。
0827名無しさん@お腹いっぱい。2007/04/17(火) 06:55:24ID:3QPCo8Ou0
.*? にこだわるのは構わないとけど
ここでウダウダ言ってどうにかなる話なの?
使われない理由に納得できないなら作者と直接話せばいい。
それよりもどんなフィルタ使ってんのか教えてくれ。
0828名無しさん@お腹いっぱい。2007/04/17(火) 07:08:54ID:WwfN0GGJ0
もう>>698には自作の広告ブロック作れと言いたい。そしたら好きなだけホルホル出来るだろ。
0829名無しさん@お腹いっぱい。2007/04/17(火) 07:54:04ID:g3Vx5ufA0
バカばっかりだな。
0830名無しさん@お腹いっぱい。2007/04/17(火) 08:29:57ID:44r7PSXC0
どうもワイルドカードと正規表現の違いがわかってないバカがひとり暴れてるように見えるんだが
0831名無しさん@お腹いっぱい。2007/04/17(火) 14:24:19ID:JHC+Tnzn0
>828
ホント、ホント。
けど、俺は絶対アクセスしないけどねーw
0832名無しさん@お腹いっぱい。2007/04/17(火) 16:00:57ID:3nKc6BMQ0
フィルタは自分で作るものだ。 おまえみたいな乞食にくれてやるようなものなんかない。
タイム比較の話題が終わったら俺も撤退する。
■ このスレッドは過去ログ倉庫に格納されています