トップページ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/
0704名無しさん@お腹いっぱい。2007/04/12(木) 17:26:20ID:NrgQlk+w0
>>699
Adblock Plus の内部機構においても『/ad.*banner\.gif$/』より
『/ad.*?banner\.gif$/』の方が速いと俺に分かるように説明してくれたら伝えるけど、
個人的にそこは今の Adblock Plus にはあまり重要ではないことのような気がする。

それはそうと、実はそこの部分は思いっきり誤訳しててさw
正しくはこう↓
0705名無しさん@お腹いっぱい。2007/04/12(木) 17:27:12ID:NrgQlk+w0
Adblock Plus はどのようにフィルタを処理し、また如何なるフィルタがより高速なのか?

フィルタは内部的には全て正規表現に変換される(正規表現で書かれていないものであっても)。
例えば『ad*banner.gif|』は内部では『/ad.*banner\.gif$/』となる。
しかしながら Adblock Plus はチェックすべきフィルタがある時に
それらを全てひとつひとつチェックしたりはしない……そんなことをしても無駄に重くなるだけだ。

フィルタの正規表現への変換に際し、Adblock Plus はそれらからテキスト情報を抜き出そうとする。
必要なのは8文字のユニークな文字列("shortcut")である。
これはそれぞれのフィルタ内のアドレスから抜き出されたもので、
例えば『|http://ad.*』というフィルタからは Adblock Plus は “http://a” か “ttp://ad” か “tp://ad.” のどれかを選ぶ
(これらはどれも本来のフィルタがマッチすべきアドレスにマッチする)。
不幸にもワイルドカード等で区切られて8文字も無いとか、正規表現で書かれているとかならこの shortcut は作れない。

全ての shortcut は検索テーブルに放り込まれ、それによって Adblock Plus は必要なフィルタを極めて効率的に呼び出せるようになる。
とあるアドレスをチェックする時には Adblock Plus はまずそれらの shortcut を検索する
(これは非常に速く終わり、また登録された shortcut の数にもほとんど影響を受けない)。
shortcut にヒットした場合にのみ本来のフィルタから変換された正規表現でチェックする。
また、shortcut を作れなかったフィルタに関してはひとつひとつチェックされる。

まとめ:どんなフィルタが速いのか?
・可能な限り正規表現は使わない(正規表現は問答無用に遅い)。
・8文字の直列した文字列(中にワイルドカード『*』のような特殊な文字が含まれない)を内包する
 シンプルなフィルタを使うように心掛ける。そうでないフィルタは正規表現と同様に遅い。
・上記の『速い』フィルタはいくつあっても良い。数に関係なく処理時間は一定である。
 つまり1個の正規表現よりも20個のシンプルなフィルタを使う方がマシである。
・というわけで、Deregifier(http://adblockplus.org/en/deregifier)マジお勧め。
0706名無しさん@お腹いっぱい。2007/04/12(木) 17:29:06ID:NrgQlk+w0
ちなみに Deregifier とは正規表現を単発フィルタに分解してくれるツール。

http://adblockplus.org/en/deregifier

例えば>>699の中にある『/(\/|www\.|page)ad(\/|click\/|server\.|justnetwork\.|\.watch\.)/』なら↓
/ad.watch.
*/ad/
*/adclick/
/adjustnetwork.
/adserver.
pagead.watch.
pagead/
pageadclick/
pageadjustnetwork.
pageadserver.
www.ad.watch.
www.ad/
www.adclick/
www.adjustnetwork.
www.adserver.
↑といった感じに分解してくれる。
0707名無しさん@お腹いっぱい。2007/04/12(木) 17:32:08ID:NrgQlk+w0
>>704>>699じゃなくて>>698宛てだった。スマソ
0708名無しさん@お腹いっぱい。2007/04/12(木) 17:36:28ID:1TsEBTx50
>>695
いろいろな書き方がある訳で、同速同条件のフィルターが2つある場合
字数は1バイトでも少ない方が良い。
>>698はこの場合では1バイト増やした方がより良い事を証明したにすぎない。
お前の文章には人間的欠陥がある。
ID:L0tEZM2p0=己のものさしでしかもの言えない馬鹿
0709名無しさん@お腹いっぱい。2007/04/12(木) 17:41:19ID:V85EMG0Q0
ID:L0tEZM2p0=チンカス
0710名無しさん@お腹いっぱい。2007/04/12(木) 17:44:09ID:ibYXc5q40
>作者がこれを知らないようなら教えてあげてくれ。
>作者がこれを知らないようなら教えてあげてくれ。
>作者がこれを知らないようなら教えてあげてくれ。
>作者がこれを知らないようなら教えてあげてくれ。
>作者がこれを知らないようなら教えてあげてくれ。
( ´,_ゝ`)プッ
0711名無しさん@お腹いっぱい。2007/04/12(木) 17:54:51ID:SixmzFVx0
>>704-706

 ,'从从)〉
rヤ^ー゚ノi| 乙であります。

あんたネ申だよ♥

漏れはあんたを師事する!蛆蟲なんか踏みつぶせ!!
0712名無しさん@お腹いっぱい。2007/04/12(木) 17:58:33ID:SixmzFVx0
>>703
胴衣
0713名無しさん@お腹いっぱい。2007/04/12(木) 18:04:25ID:SixmzFVx0
>>699氏は、>>686-687にあるアンサーに従ったのか…
0714名無しさん@お腹いっぱい。2007/04/12(木) 18:25:41ID:ozNw2ZSs0
8文字未満だとshortcut作られないから、可能なら8文字以上に増やした方がいいってこと?
0715名無しさん@お腹いっぱい。2007/04/12(木) 18:58:16ID:CrnX8U750
>>703
>>712
なるほど。ありがとう
作り直してみる
0716名無しさん@お腹いっぱい。2007/04/12(木) 19:02:50ID:DgqfLt7S0
住人に有益な情報を提供しているネ申と住人に吠えるだけの糞蟲ぢゃ(ry

>>704
乙。
0717名無しさん@お腹いっぱい。2007/04/12(木) 19:18:22ID:NrgQlk+w0
FAQによると『banner』と『/banner/』は同義なんだが、
これが『bannnner』と『/bannnner/』だったとしても同義になるのかな?
どれだけ単純でも明示的に正規表現で書かれたフィルタはそういうものとして扱うだろうから
この場合は shortcut の有無で如実な差が出ることになるのだろうか。

>>711
別に俺は誰とも対立してないぞ。煽るな。

>>714
俺が読んだ限りではそのように見える。
『banner』はNG。
『bannnner』はおk。
『bannnner*hage』はおk。
『banner*hagehoge』も多分おk。
http://*hagehoge』も多分おkだが『http://』部分に意味があるかどうかは微妙、
それなら最初から『hagehoge』だけでも良いかも知れない。つまり>>703
そして正規表現は柔軟だか鈍重というまるで脂肪の塊のようなもの。

>>716
実はこの手の情報は過去スレでは散々既出な希ガス。
日本語で読めるまとめが無いせいで定期的に話題がループしてるっぽ。
0718名無しさん@お腹いっぱい。2007/04/12(木) 19:44:59ID:b4CFXTZA0
正規表現から単発が主流になりそう(なった?)みたいだけど昔あった速いとは別の
フィルターが多い=重い(くなる) っていう事は、もうなくなったの?
0719名無しさん@お腹いっぱい。2007/04/12(木) 19:55:32ID:XhsaMfFB0
\dはまだしも\Wはさすがに分解する気にならんなあw
07206982007/04/12(木) 20:16:34ID:L0tEZM2p0
>>704
Adblock Plus の内部機構でもそれ以外のもの(perl等)でも同様に早くなるよ。
URL処理するためだけの正規表現が複雑になることはまずないから恩恵は期待出来ないが。

それで何故早くなるかというと、 .* は可能な限り長くマッチしようとし、 .*? は可能な限り短くマッチしようとする特性がある。

1、/a.*b/
2、/a.*?b/

という2つの表現を使って説明すると、

a 0000000000000 b 111111111111111 b 2222222222222 b 33333333333333 c

という文字列に対してこの2つの正規表現を使うと

1は "a 0000000000000 b 111111111111111 b 2222222222222 b" にマッチするのに対し(最長一致)、
2は "a 0000000000000 b" にマッチする(最短一致)。

つまり1の場合、000.. の後ろの b を見つけた後もその後ろに b が無いか探し続けてしまう。
それに対し2は 000.. の後ろの b を見つけたらそこで検索を止める。 その分早くなる。

>誤訳
了解。 8文字の固定文字列を取り出して検索するとはいい方法だ。 正規表現を書くときも同じでまず固定文字列を
探すような表現にすると格段に早くなる。

>>708
>同速同条件のフィルターが2つある場合
つまり条件付きってことだな。 ある条件のもとでしか正しくならないわけだ。

「月は満月だ。」 (満月のときの月は確かに満月だが三日月などもある)

みたいな無茶苦茶な理論だな。 自分では気付いてないようだが。
0721名無しさん@お腹いっぱい。2007/04/12(木) 22:23:46ID:es/RVV9+0
>>699

>**69 http://*.99bb.com/$image,link,object

エロサイトw
0722名無しさん@お腹いっぱい。2007/04/12(木) 22:56:41ID:ozNw2ZSs0
>>721
アフィのリンクとか張ってるやついるからそのフィルタなんだろ。
本人がそのサイト使ってたら誤爆しまくりの意味ないフィルタだし。
0723名無しさん@お腹いっぱい。2007/04/12(木) 23:21:29ID:1Wy44Dv40
>>717
乙。漢だねw

>>720
お前さ、698って名乗ってるけど>>695ですから。残念!
始めに煽るような毒づいてるレスさえしなきゃID:NrgQlk+w0みたいくもっと住人に愛されたのになw
0724名無しさん@お腹いっぱい。2007/04/12(木) 23:58:49ID:mlRMOeBa0
669氏のフィルターを例題に借りると
>703もありだが、逆にa8とかはhttp://をつけて無理矢理でも増やせってか

717氏 乙

720氏 ね
0725名無しさん@お腹いっぱい。2007/04/13(金) 00:20:45ID:ubQ11F7W0
平行線の話題はそろそろやめないか?
ここにゴチャゴチャ書かずに、それぞれ自分の中でそう思っておけばいいことだろ。
有益な情報が妙な叩き合いで見にくくなる。
0726名無しさん@お腹いっぱい。2007/04/13(金) 00:58:58ID:1DrFi/l80
おう
0727名無しさん@お腹いっぱい。2007/04/13(金) 01:19:43ID:6niKKmEx0
>>725
禿同
しかしまぁ、以前からネチケットの悪い糞蟲が消えなきゃ無理なんぢゃねぇーの、とも思ったり・・・・
0728名無しさん@お腹いっぱい。2007/04/13(金) 01:35:30ID:MdxtMwnV0
確かに1匹いるね。前から…

CSS派には申し訳ないがこの機会に
テンプレのABP部分をまとめても良いか、とも思ったり…
0729名無しさん@お腹いっぱい。2007/04/13(金) 02:04:40ID:oTLqjw2d0
賛成の賛成なのだ
せっかくだからまとめサイトのAdblockページの更新もしたいね
ページにはファイルのうpも出来る訳だし
597氏が翻訳してくれた>>606とかは
是非まとめサイトのファイルうpを使って欲しいよ
でなきゃもったいないよ
せっかくの597氏の苦労が

それと質問なんだけどまとめサイトの
「フィルターを増やすと動作が重くなるので」の部分は今後どうなるの
正規表現をばらして増すと速いけどやっぱり重くなるの?
0730名無しさん@お腹いっぱい。2007/04/13(金) 03:52:50ID:QovjZ3Lw0
>>728
胴衣

>>729
胴衣

ではスタート↓
0731名無しさん@お腹いっぱい。2007/04/13(金) 05:35:54ID:zOu8WnQA0
↑無視ですまんが・・・
たとえば ias.rakuten.co.jp$script と登録すると shortcut=rakuten. になるんだが
これは楽天開いたときなんかはショートカット検索の段階でヒットしまくることになる。
そこで ias.raku$script と登録すると shortcut=ias.raku になるわけで
これだとショートカット検索の段階でもヒットするのは僅か。
最終的にはregexpの方でチェックするから結果は一緒なんだが
最初から数を絞り込んでる後者の方が気持ち速いのかね?
ただ後者だと何を登録してるかわからなくなりそうでアレだが。
0732名無しさん@お腹いっぱい。2007/04/13(金) 08:58:48ID:3lmLf/0m0
>>708
意味分かんなくてワロタw リアル厨房?
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 が作れないフィルタ(正規表現を含む)でヒットしないものが大量にあると物凄く遅い。
・複雑な正規表現は善し悪し。上手く使うと速度が上がるが下手に使うと底抜けに遅くなる。
・キャッシュが効いてるうちはフィルタの重い軽いはページの表示に影響しない。
■ このスレッドは過去ログ倉庫に格納されています