- 1 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/08/01(火) 12:41:46 ID:IsoaU6wd0]
- フィルタをアップするときに書き込む項目(推奨)
・フィルタを適用したブラウザ ・ブロックに使用した手段 ・ブロックされる広告の説明 ・フィルタ 過去のスレッド Mozilla Firefox Adblockフィルター スレッド Part1 pc7.2ch.net/test/read.cgi/software/1131101772/
- 704 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/04/12(木) 17:26:20 ID:NrgQlk+w0]
- >>699
Adblock Plus の内部機構においても『/ad.*banner\.gif$/』より 『/ad.*?banner\.gif$/』の方が速いと俺に分かるように説明してくれたら伝えるけど、 個人的にそこは今の Adblock Plus にはあまり重要ではないことのような気がする。 それはそうと、実はそこの部分は思いっきり誤訳しててさw 正しくはこう↓
- 705 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/04/12(木) 17:27:12 ID:NrgQlk+w0]
- Adblock Plus はどのようにフィルタを処理し、また如何なるフィルタがより高速なのか?
フィルタは内部的には全て正規表現に変換される(正規表現で書かれていないものであっても)。 例えば『ad*banner.gif|』は内部では『/ad.*banner\.gif$/』となる。 しかしながら Adblock Plus はチェックすべきフィルタがある時に それらを全てひとつひとつチェックしたりはしない……そんなことをしても無駄に重くなるだけだ。 フィルタの正規表現への変換に際し、Adblock Plus はそれらからテキスト情報を抜き出そうとする。 必要なのは8文字のユニークな文字列("shortcut")である。 これはそれぞれのフィルタ内のアドレスから抜き出されたもので、 例えば『|ad.*』というフィルタからは Adblock Plus は “a” か “ttp://ad” か “tp://ad.” のどれかを選ぶ (これらはどれも本来のフィルタがマッチすべきアドレスにマッチする)。 不幸にもワイルドカード等で区切られて8文字も無いとか、正規表現で書かれているとかならこの shortcut は作れない。 全ての shortcut は検索テーブルに放り込まれ、それによって Adblock Plus は必要なフィルタを極めて効率的に呼び出せるようになる。 とあるアドレスをチェックする時には Adblock Plus はまずそれらの shortcut を検索する (これは非常に速く終わり、また登録された shortcut の数にもほとんど影響を受けない)。 shortcut にヒットした場合にのみ本来のフィルタから変換された正規表現でチェックする。 また、shortcut を作れなかったフィルタに関してはひとつひとつチェックされる。 まとめ:どんなフィルタが速いのか? ・可能な限り正規表現は使わない(正規表現は問答無用に遅い)。 ・8文字の直列した文字列(中にワイルドカード『*』のような特殊な文字が含まれない)を内包する シンプルなフィルタを使うように心掛ける。そうでないフィルタは正規表現と同様に遅い。 ・上記の『速い』フィルタはいくつあっても良い。数に関係なく処理時間は一定である。 つまり1個の正規表現よりも20個のシンプルなフィルタを使う方がマシである。 ・というわけで、Deregifier(adblockplus.org/en/deregifier)マジお勧め。
- 706 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/04/12(木) 17:29:06 ID:NrgQlk+w0]
- ちなみに Deregifier とは正規表現を単発フィルタに分解してくれるツール。
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. ↑といった感じに分解してくれる。
|

|