1 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/08/01(火) 12:41:46 ID:IsoaU6wd0] フィルタをアップするときに書き込む項目(推奨) ・フィルタを適用したブラウザ ・ブロックに使用した手段 ・ブロックされる広告の説明 ・フィルタ 過去のスレッド Mozilla Firefox Adblockフィルター スレッド Part1 pc7.2ch.net/test/read.cgi/software/1131101772/
610 名前:名無しさん@お腹いっぱい。 [2007/04/06(金) 15:29:35 ID:7hUapQDH0] そんな糞サイト見ない
611 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/04/06(金) 15:31:52 ID:PN/CHpul0] >>609 ## の前に情報いれることでドメイン指定はできるから、ほかのサイトに影響することはないけど、 その場所にコンテンツが入るリスクもあるから、ブロックしないようにしてる。 フィルタするならそう汚いフィルタにするしかない。
612 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/04/06(金) 16:27:20 ID:TybvPJO10] >>606 前から読みたかったが、「ちっ、外国語かよ」だった。だから心底感謝する。 そして、 |// / /___, -一ァ| /! |ト、|│ | | く」 |,-‐¬  ̄---┘'7 |! ハ! |,、-┼十|! | | | , -‐ ''" し' '´_ /,ィ二l |ト、/!ヽト、\_ヽ!|!l | ハ | ,r/ __ ,イ|リ ヾハ! ヽ! ,ィ⌒ヾミリノ!/リ | / ||ヽ -' / ̄ )` __ |ヒノ:} '` ,イ/ | | < 乙であります! ,r ' ヾ、 ,-、____ , イ ̄,r==- ==-' レ' /| | / ヽ `ーソ ' | |ト、,ヘ ′"" "" / / || | . / \_ / | ハ ヽ`゙'ヘ ' '__. ィ / / | | | / / / | ヽ 川\ ヾ三ニ‐'′//! | | | | / / / 八 \川| |`ト- .. __ , イ‐ァヘ | | || >>608 ↑その2行AAこれの縮小版か さっきやっとわかった orz
613 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/04/07(土) 00:59:34 ID:mXI1UpKc0] おう
614 名前:名無しさん@お腹いっぱい。 [2007/04/07(土) 02:33:26 ID:lvdy4hE80] だれか>>584-585 を使った正規表現じゃない良さげなフィルタ貼ってよ
615 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/04/07(土) 03:19:48 ID:UQ70fyG30] 正規表現を使わないフィルタでも、プロファイルにある adblockplus/patterans*.ini を 見ると結局は正規表現にされているような気がしない…? > text=|ad. > type=filterlist > regexp=^http\:\/\/ad\.
616 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/04/07(土) 14:07:30 ID:61kY1ana0] 今のところ一番ヒット多いやつ *.jp.ap.valuecommerce.com/*/$image,link,subdocument 正規表現使わないなら自分の巡回するページのだけ作るほうがいいよね
617 名前:597 mailto:sage [2007/04/07(土) 14:25:26 ID:THaO/tdK0] >>615 FAQによると内部的には正規表現に変換されている。 だから『ad』と『/ad/』は実は同義。 しかし>>584-585 のようなフィルタオプションを使ったフィルタは 正規表現で同様の適用範囲の絞り込みをするよりも高速に動作する。
618 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/04/07(土) 14:25:59 ID:THaO/tdK0] いけね、名前消し忘れてた。
619 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/04/07(土) 17:22:40 ID:UQ70fyG30] >>617 > 正規表現で同様の適用範囲の絞り込み ttp://adblockplus.org/en/filters これによると、フィルタオプションは対象とする要素を決められるという事みたいだ けど、これと同様の事がadblockの正規表現でも出来たの? どうも、"正規表現を使わない方が速い"という意味がサイトの文書などを見ても 釈然としないんだよね…。
620 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/04/07(土) 17:54:18 ID:tQCrgZA10] そろそろ使っているフィルターうpの時期だな 頼む
621 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/04/07(土) 18:35:54 ID:0+a4x/xu0] ちょっと見た感じだと まず正規表現を使わないフィルタのshortcuts=****にある短い文字列を使って検索 →ヒットしたらそのフィルタのregexp=****で正規表現検索 →ヒットしなかったら正規表現のフィルタで正規表現検索 って感じみたい あと>>584-585 の絞込みオプションは正規表現フィルタでも使える /ad|banner(click|net)/$image,match-caseとか
622 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/04/07(土) 19:39:49 ID:THaO/tdK0] >>619 俺も実はあんまり良く分かってないんだけど、多分 */ads/*.js よりは */ads/*$script の方が速いという事かと。
623 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/04/07(土) 20:18:37 ID:UQ70fyG30] >>621 > →ヒットしたらそのフィルタのregexp=****で正規表現検索 > →ヒットしなかったら正規表現のフィルタで正規表現検索 なんか、人間から見るとすごく非効率な気がするけど、この方がPC的に速いの かな?って、上の2つの違いは…? >>622 URLの文字列がどうなっていようがその要素には何の関係もないから、"*.js"が $script と同じ意味にはならないよ。 ads/* ads/*$script <img src="/ads/example.js"> <scipt src="/ads/example.js"> この場合、上のフィルタだと両方検索してしまうけど、下のフィルタだと script 要素 だけに絞れるからその分速いという事で、正規表現の有無とは関係ないと思うよ。
624 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/04/07(土) 20:43:19 ID:0+a4x/xu0] まあ要するに 正規表現検索は基本的に通常の文字列検索より遅いので できるだけ正規表現検索が行われないように工夫されてるってことかな フィルタリストの中に正規表現フィルタが一つでもあると必ず一回は正規表現検索が行われる フィルタリストの中に正規表現フィルタが無ければ 通常の文字列検索でヒットしない限りは正規表現検索は行われない
625 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/04/08(日) 13:45:10 ID:zdRKnNuL0] 体感できるほどの速度の差はないと思う。
626 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/04/08(日) 15:36:11 ID:TANvoK6I0] >>625 絶対的な計測値とかを何も提示せずに 「こっちが速いと思う」「遅く感じる」なんていう曖昧な 個人個人の思い込みだけで延々と言い合いするのは、 このスレで定期的に行われる季節の風物詩みたいなもんだから。 それ以外に大した話題もないんだし好きにさせてやれ。
627 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/04/08(日) 15:42:57 ID:zdRKnNuL0] うん、そうだね。
628 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/04/08(日) 17:12:41 ID:i1es3+/N0] おう
629 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/04/08(日) 18:10:00 ID:inWpqDuM0] オプションにある"ブロック要素を隠す"って、ブロックした要素を隠すって事だった のかよ!! 今まで、広告などが含まれるブロック要素(<div>など)が隠せるのかと思ってた…orz
630 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/04/08(日) 18:37:45 ID:Ocyd8N5n0] >>629 がまだ何か誤解してそうで怖い
631 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/04/08(日) 21:12:53 ID:/xibPfYk0] >>616 律儀にhttpから登録するんだな。 漏れの場合これで登録してる↓。 valuecommerce.com$image,subdocument
632 名前:名無しさん@お腹いっぱい。 [2007/04/08(日) 21:46:52 ID:UXqougbF0] >>626 Plus作者自身が正規表現のフィルタより>>584-585 の方が速いって書いてるんだよ まぁ体感できるほどの差はない気がするが
633 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/04/08(日) 22:02:51 ID:VD4RAMvd0] >>584-585 のフィルタオプションが速いなんて書いてないぞ 正規表現のフィルタより普通のフィルタを使った方が速い『かもしれない』とは言ってるけど
634 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/04/08(日) 22:27:55 ID:qNB2q//Y0] 適当なこと書く奴が多くて何が真実なのかさっぱり分からん。
635 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/04/08(日) 23:06:16 ID:2C2xbbgFP] 原文ドゾー > Note: You should notuse regular expressions to speed up processing of your filter list. > You might hear this advice often but it is outdated > starting with Adblock Plus 0.7 basic filters are actually processed > faster than regular expressions.
636 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/04/08(日) 23:17:43 ID:zdRKnNuL0] 嘘を嘘と見抜けない人には難しい。
637 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/04/09(月) 13:40:28 ID:NSqDFLQA0] 良いフィルターの条件 1 誤爆がない 2 広い範囲で使える 3 字数が1バイトでも少ない 良いものならどんな書き方しててもいいぞ 要は機能重視
638 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/04/09(月) 13:56:11 ID:LtJgY54v0] >>637 > 3 字数が1バイトでも少ない 何考えてるんだか。 人間が見て分かりやすいのが良いに決まってるだろ。 お前はプログラマーにはなれないな。
639 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/04/09(月) 14:23:57 ID:eYsQuTt8P] っ【コメント】 いきなりプログラマーとか言い出したのは そこに何か嫌な思い出でもあるからなのか何なのかと思ったが 荒れそうなのでやっぱり何も言わないでおこうと思った。
640 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/04/09(月) 14:43:25 ID:LtJgY54v0] ABPは項目を隠すルールにはコメント使えないじゃん。 それにサイト側で修正がある場合もあるし、公開するルールなら他の人が内容を確認したいことだってある。 そして、後で自分が見て分かりやすいことが望ましい。 以上の理由から、1バイトでも少ないことより、「人間が見て分かりやすい」ことの方が重要だ。
641 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/04/09(月) 14:47:38 ID:pRTlAw6F0] ところで>>633 の言う『かもしれない』ってどこに書いてあった?
642 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/04/09(月) 14:55:13 ID:EAs9PvfY0] 具体的にID:LtJgY54v0がいいと思うフィルタを晒してくれよ。 あと公開するルールなら〜って言ってるけど、このスレやまとめサイトに載るものなら 別にコメントとしてフィルタの説明がついてても平気だろ。
643 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/04/09(月) 15:04:18 ID:ED65lMNe0] >>641 might を脊椎反射で推量に訳しちゃったんだろう。 中学英語だよな。
644 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/04/09(月) 15:10:54 ID:pRTlAw6F0] >>643 >>635 のmightが推量なのは正しくね? ただ『速い』にはかからないというだけでw
645 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/04/09(月) 20:06:38 ID:rUF0jbOB0] >>635 はこっちの訳 Complicated regular expressions require much time to be evaluated, it might be faster to use several simple ones.
646 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/04/09(月) 20:07:39 ID:rUF0jbOB0] × >>635 ○ >>633
647 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/04/09(月) 21:36:04 ID:pRTlAw6F0] > Are regular expressions faster than “normal” filters? > Usually this is not the case. Adblock Plus will transform any "normal" filter > into a regular expression, and internally it will work only with regular expressions > ― there is no difference between the filters banner and /banner/. > Regular expressions are often used to "compress" the filters list and replace several filters > by one regular expression. The rule of thumb says "fewer filters means faster" > but it isn’t always correct in this case. Complicated regular expressions require > much time to be evaluated, it might be faster to use several simple ones. > Regular expression give you more flexibility however, that’s where their use is always justified. > For example the regular expression /adv(?!ice)/ will block adv and advert and advertisement > but not advice ― something you couldn’t have done with simple wildcards. 正規表現は『普通の』フィルタよりも速いのか? 普通はそのようなことはない。Adblock Plusは『普通の』フィルタを正規表現に変換し、 内部的には正規表現として処理する……bannerと/banner/には差は無いのである。 正規表現はしばしばフィルタリストを『圧縮』して、いくつかのフィルタをひとつの正規表現で 置き換えるのに使用される。経験則としては『フィルタが少ない=処理が速い』であるが、 このような場合は必ずしもこれは正確ではない。 複 雑 な 正 規 表 現 は 評 価 す る の に 多 大 な 時 間 が か か り 、 い く つ か の シ ン プ ル な も の を 使 う よ り も 速 い か も 知 れ な い 。 けれども正規表現はより柔軟性に優れており……以下省略。 >>645 のonesは"Complicated regular expressions"に対する"simple regular expressions"のことだから >>633 のようなことは言ってない。
648 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/04/09(月) 21:40:22 ID:pRTlAw6F0] ごめん偉そうな事を言いながら肝心なところで間違えた。 > 複雑な正規表現は評価するのに多大な時間を必要とし、 > いくつかのシンプルなものを使う方が速いかも知れない。
649 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/04/09(月) 23:32:47 ID:rHZd71z80] >>648 いくら正確に訳したところで結局は 「速いかも知れない。(そうでないかも知れない)」っていう なんとも中途半端な訳だから、また騒ぎがふりだしに戻るだけ。
650 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/04/09(月) 23:37:36 ID:f4aajwxY0] ある程度正規表現を書き慣れている人ならすんなり受け入れられる文章ですが 正規表現のタイム比較をしたことが無い人には分からないかも知れませんね。 体感出来るくらいの差が出ない場合は同タイムだと思ってしまいがちですし。
651 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/04/10(火) 12:52:55 ID:bAqxtW+r0] >>640 己で書いた物が後でわからんようになる、わかりにくい、って ようするにお前がアフォということだなw 当然、軽い方がいいにきまってる
652 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/04/10(火) 13:17:34 ID:uWpJW6oY0] >>649 おまいは何を言ってるんだ? 「複数の正規表現をひとつにまとめるとむしろ速度が落ちるかも知れない」 って記述を正規表現と普通のフィルタの話と誤読しているアホが居る。 最初から結論は変わってないのにそいつのせいで一部の住人が混乱している。 それだけの話だ。
653 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/04/10(火) 15:57:52 ID:Gcq3Bagq0] >>651 > 当然、軽い方がいいにきまってる > 当然、軽い方がいいにきまってる > 当然、軽い方がいいにきまってる バカか。 1バイトでも少ない = 軽い のかよw
654 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/04/10(火) 19:17:02 ID:Aqk1lV2B0] >>653 >1バイトでも少ない = 軽い のかよ >1バイトでも少ない = 軽い のかよ >1バイトでも少ない = 軽い のかよ バカめ。 1バイトでも少ない = 軽い んだよw
655 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/04/10(火) 19:28:14 ID:zAyWvgGn0] >653 お前の脳ミソは一般人より軽いなwwwwwwwww
656 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/04/10(火) 20:08:07 ID:b9lE0leW0] オマエら653の体重は一般人より重いぞw
657 名前:653 mailto:sage [2007/04/10(火) 20:32:41 ID:Gcq3Bagq0] 軽いってのは動作が軽いって意味でいったんだけど・・・。 まさか1バイト容量が少なくなることに意味あるって理論だったの? HDDが GB、多い人ならTBつまれる時代に、1バイト節約して何になるんだか。
658 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/04/10(火) 20:41:18 ID:zXxQi0gh0] 動作も軽いだろ。何言ってんだ?
659 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/04/10(火) 20:59:05 ID:Gcq3Bagq0] >>658 容量が小さい正規表現の方が動作が軽いって? ご冗談を。 長さが長い正規表現でも動作軽い場合もあるし、長さ短い正規表現でも動作が重い場合もある。
660 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/04/10(火) 22:31:57 ID:uWpJW6oY0] >>659 誤爆が無いという前提条件があることを忘れてないか? 過不足なく同じ広告を検出するのに文字数が違うフィルタが2個あると考えてみ? まだ変な事を言うようならもう「日本語お上手ですね^^」で流すぞ。
661 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/04/10(火) 22:50:09 ID:Gcq3Bagq0] >>660 極端な例でいけば、"adwords" にマッチさせたいとき、 1: "^ad.*$" 2: "^adwords$" で、前者のがバイト数は少ないけど、後者のが処理は早い。 バイト数が大きいと、処理速度が遅いとかありえない。
662 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/04/10(火) 22:50:55 ID:ZUxm9XoF0] 1バイトでも軽い方がいいに決まってる。
663 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/04/10(火) 22:52:27 ID:Gcq3Bagq0] あ、これだと誤爆がどうだのといわれそうだからかえると、 AdNo01 と AdNo02 と AdNo03 にマッチさせたいとき、 1: "^AdNo0[1-3]$" 2: "^AdNo0(1|2|3)$" だと、後者のが早いが、後者のがバイト数が大きい。
664 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/04/10(火) 23:24:33 ID:iV8Yg5la0] 良いフィルターの条件 1 誤爆がない 2 広い範囲で使える 3 字数が1バイトでも少ない
665 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/04/11(水) 00:38:43 ID:1X5GzRe80] >>663 =己のものさしでしかもの言えない馬鹿
666 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/04/11(水) 00:59:20 ID:r5xxXnCe0] なんだかわけがわからないよヽ(`Д´)ノウワァアン! …要は好きなほうを使えってことでおk?
667 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/04/11(水) 01:04:40 ID:GGq4MXguP] 速度を論じながらもフィルタは全て正規表現という前提なのは一体何故なんだぜ? ここ数日のログをちゃんと読んでるならその思考はありえんだろ
668 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/04/11(水) 07:30:07 ID:YXUpXo3Q0] >>667 「1バイトでも少ないほうが処理速度が速い」 なんて言い出している勘違い厨への反論だろ。
669 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/04/11(水) 11:34:16 ID:R8bUgAO40] とりあえずID:Gcq3Bagq0は使ってるフィルタを晒せ。話はそれからだ。
670 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/04/11(水) 11:37:03 ID:VtFYwKQs0] >>663 それは前者のほうが早いです(プ
671 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/04/11(水) 11:52:05 ID:GGq4MXguP] >>668 速度の話をするなら正規表現じゃないフィルタを例にすべきじゃないの? 正規表現という時点で遅いんだから。
672 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/04/11(水) 12:25:04 ID:sLzZfGkV0] 正規表現じゃない書き方をしても内部処理は正規表現。
673 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/04/11(水) 12:27:59 ID:Rq1SuNqI0] その前に速度をどういう計り方しているか?だろ 条件が異なると当然(ry
674 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/04/11(水) 12:44:57 ID:GGq4MXguP] >>672 日本語がお上手なのはもう分かったから、 次は本当の日本人として通用するレベルの読解力を身に付けられるように頑張ろうね^^
675 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/04/11(水) 13:48:41 ID:mZN9E+zg0] >>663 の例で言えば "AdNo0*"と"AdNo0"と"AdNo"でどれが速いかという話ではないの?
676 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/04/11(水) 13:50:43 ID:VtFYwKQs0] >>674 分かってないのはおまえだよ。 今までの流れを全然読まずに書いてるだろ。 >>675 はぁ?? 全然違う。
677 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/04/11(水) 14:04:26 ID:mZN9E+zg0] さあ盛り上がってまいりますた。 >>675 何がどう違うのか具体的にkwsk書いてくれないと平行線を辿るよ。
678 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/04/11(水) 14:08:50 ID:VtFYwKQs0] >>677 自演?
679 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/04/11(水) 14:11:51 ID:VtFYwKQs0] つか、分かってない奴が首突っ込むからややこしくなるんだよな。 俺とか>>672 とか>>668 あたりの奴だけで十分だから雑魚どもは消えろ。
680 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/04/11(水) 14:17:19 ID:BDpXK2TJ0] >>674 全然関係ないけど、H"接続?
681 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/04/11(水) 14:35:27 ID:R8bUgAO40] いろいろ理屈言ってるやつのフィルタなんで参考にさせて貰いたいんだが、 いつになったらフィルタ晒してくれるんだ?それとも口先だけなのか?
682 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/04/11(水) 15:32:07 ID:VXWZXCSR0] 口先だけなんだろ(藁
683 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/04/11(水) 15:54:48 ID:GGq4MXguP] >>680 いや普通のドコモっす。
684 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/04/11(水) 16:45:14 ID:3FWdLppe0] >>683 IDの末尾Pだから「これが噂の?」てオモタ とりあえず ヘ⌒ヽフ ( ・ω・) dd / ~つと)
685 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/04/11(水) 16:55:03 ID:GGq4MXguP] 携帯(O)→フルブラウザアプリ(Q)→公式p2(P)と皮を被ってるので 最終的なID末尾がPになってます。
686 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/04/11(水) 18:43:14 ID:mZN9E+zg0] adblockplus.org/forum/viewtopic.php?t=1222 AmirG の質問: Q1.www.adserver.com/ から広告が来るとして、 以下のフィルタの中ではどれが効率が良い(CPUパワーを食わない)ですか? ここから↓ .adserver.com/ www.adserver.com/ www.adserver.com/ |www.adserver.com/ ↑ここまで。 Q2.8文字のシンプルなフィルタは正規表現のものよりも効率が良いとのことですが、 複数のシンプルなフィルタはひとつの正規表現にまとめることができます。 例えば↓ abcd1111 abcd2222 abcd3333 abcd4444 ↑これを『/abcd[1-4]{4}/』にするとか。 この場合に正規表現で書かれたものは上の4つよりも効率的でしょうか? (『abcd*』は abcdefg とかに誤爆するので良くないし8文字より短い) 効率的でないという場合、シンプルなフィルタの束よりも正規表現のフィルタがより効率的になる区切りはどこになりますか?
687 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/04/11(水) 18:44:07 ID:mZN9E+zg0] Wladimir Palant(現行の Adblock Plus の開発者)の答え: A1.どれでも良し。 8文字以上のフィルタはほとんど速度差が出ません。 ただし誤爆が起きないという点においては一番最後のものがお勧めです。 A2.例えシンプルなフィルタが100個あっても1個の正規表現よりはまだ速いです。 勿論"banner34(34は任意の2桁の数字)"をブロックするのに100個ものシンプルなフィルタを登録するのは労力が割に合わないが、 この例においては正規表現の使用にはそれくらいのメリットしかありません。 rick752 の補足: 効率が良いのは直列した8文字(ワイルドカードで分割されていない)。 『banner1234』は良い。 『banner*1234』は悪い。 上の条件を満たすならワイルドカードはどこに使っても良い(※1)。 AmirG のお礼: 正規表現は8文字未満のフィルタにのみ使えってことですね。 rick752 の補足: そう、でも普通に書いたら8文字は超える。 大量のシンプルなフィルタは1つの正規表現に勝ります。 またそれらは読みやすく管理も楽でオン・オフの切り替えも簡単です。 それに『$~image』を正規表現の塊にセットしたりとかしたくないでしょう?(※2) ※1は多分『bannnnnner*12345678』はおkという意味だと思うんだ。 ※2は多分複雑な正規表現にオプションを適用するために起こりうる全てのケースをチェックするのは 激しく手間だから素直に普通のフィルタにオプション付けて使っとけと言いたいんだと思うんだ。
688 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/04/11(水) 19:38:29 ID:JhuwSaWL0] >A2.例えシンプルなフィルタが100個あっても1個の正規表現よりはまだ速いです。 う〜む・・・これほどとは
689 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/04/11(水) 21:17:41 ID:mZN9E+zg0] [チラシの裏] 普通のフィルタ>>>正規表現なことは>>621-624 でも触れられていたんで 本当に分かっている人はその前提で話をしているはずなんだが、 正規表現のフィルタをちゃんと「正規表現でしか書けないようなフィルタ」と言ってあげないと 理解できない人が話をややこしくしてる。>>672 とか。 >>637 の条件は必ずしも「速い」フィルタの条件とは言えないわけだが、 それが「良い」フィルタでもないとは必ずしも限らない。 それを勝手に速度の話だけに限定した人達が居て、 それにわざわざ速度で劣る正規表現しか見えてない奇特な人が応戦したもんで 妙な方向に議論を持って行かれて話がしっちゃかめっちゃかに。 [/チラシの裏] 木を見て森を見ないような議論はもう止めないか?
690 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/04/11(水) 21:29:08 ID:VtFYwKQs0] >>637 が言ってることは論外なんだが釣られる奴が多すぎるな。
691 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/04/11(水) 22:36:31 ID:GGq4MXguP] 正直俺には君が一番……いや何でもない。
692 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/04/12(木) 01:43:14 ID:iyOL1m3l0] 誤爆がないフィルターが論外とはけもじなことを
693 名前:名無しさん@お腹いっぱい。 [2007/04/12(木) 04:16:07 ID:3oGjE6PR0] 正規表現オワタ\(^o^)/
694 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/04/12(木) 04:57:36 ID:KgYtY/3O0] >>690 が言ってることは論外なんだが釣られる奴が多すぎるな。
695 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/04/12(木) 08:46:36 ID:L0tEZM2p0] >>637 は正規表現が書けないから「字数が1バイトでも少ない」なんて書けるんだろうな。 正規表現も書けない奴の書いたことにあーだこーだ言ってもしょうがねぇと思うが。
696 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/04/12(木) 12:32:33 ID:sZrj1Vxm0] 自分の使ってるフィルターうpすれば問題は全て解決 試しにうp頼む
697 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/04/12(木) 12:45:07 ID:XA9zI8Dp0] 8文字は、shortcutsの文字数が最大8文字から来てるのね。 なら621の感じ方で間違えなさそうかも。
698 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/04/12(木) 15:02:46 ID:L0tEZM2p0] >>606 FAQのほうに > フィルタは内部的には全て正規表現に変換される。例えば『ad*banner.gif|』は内部では > 『/ad.*banner\.gif$/』になる。 と書いてあるが、これは /ad.*?banner\.gif$/ とするべきだな。 正規表現に疎い人のほとんどは最短一致でいいところを最長一致で書くから困る。 複雑な正規表現の場合、最長一致にしてしまうと速度に大きく影響してしまう。 作者がこれを知らないようなら教えてあげてくれ。
699 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/04/12(木) 15:11:35 ID:CrnX8U750] *108 *.bannerbridge.net/$link,image,object *295 *.a8.net/$image,link 1474 *.jp.ap.valuecommerce.com/*/$image,link,subdocument *144 affiliate$link,subdocument,background,object *189 *.dtiserv*.com/*/$link,subdocument **14 *.jpassport.jp/*/$subdocument,image ***7 affid=$subdocument,link **69 *.99bb.com/$image,link,object *218 affili$image *155 /(\/|www\.|page)ad(\/|click\/|server\.|justnetwork\.|\.watch\.)/$image,link,subdocument ***0 rcm-images.amazon.com/images/$image,background **14 rcm-jp.amazon.co.jp/e/$subdocument *114 www.accesstrade.net/*/$image,link **42 *.afl.rakuten.co.jp/*/$image,link **12 *.valueclick.ne.jp/$image,link ***0 *.trafficgate.net/$image,link ***8 *.linksynergy.com/fs-bin/$image,link ***0 s*.j-a-net.jp/gateway/$image,link **62 w1.ax.xrea.com/$image,link **50 /(ct|x)[0-9]\..*\.(com|jp)\/(gg|ll|bin)\//$image,link **54 grp01.ias.rakuten.co.jp/$link,subdocument ***0 www.af-board.com/new/$image,link **28 sbs.nsk-sys.com/track/traffic$link stylishと併用。自分の巡回してるところはほぼ消えるけど>>687 見る限りadもばらして作り直そうかな 頭の数字はhit数です
700 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/04/12(木) 15:45:34 ID:7YpaQITx0] どっちにしても example.ad.jp/banner.gifに誤爆するけどw
701 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/04/12(木) 16:46:00 ID:VqhhjR7h0] 良いフィルターの条件 1 誤爆がない 2 広い範囲で使える 3 字数が1バイトでも少ない(正規表現含む)
702 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/04/12(木) 17:03:02 ID:mDMr6nJH0] 以下のような感じの計測方法が適当か分からないけど、それで5回ずつ測定してみた ところ「|ad. 」と「/^ad\./ 」は同等、「ad0〜ad9999の1万行」と「ad[0-9]{1,4}」 は後者の方が2秒ほど速かった。 <script type="text/javascript"> const start = new Date().getTime(); function get_diff() { const finish = new Date().getTime(); const diff = finish - start; document.getElementById( "time" ).textContent = "経過時間:" + diff + " ms"; } </script> <body onload="javascript:get_diff();"> <p id="time">計測中</p> <img src="ad.localhost/ad/ad0"> 〜省略〜 <img src="ad.localhost/ad/ad9999">
703 名前:名無しさん@お腹いっぱい。 [2007/04/12(木) 17:07:16 ID:3oGjE6PR0] >>699 http//*.とか後の/とかいらんと思うんだけど・・・ valuecommerce.com$image,subdocument こんな感じで十分じゃないの? 一発目の8文字(以内)検索で完結するように valuecom$image,subdocument みたいにひたすら短縮するのもアリかもしれん 誤爆することもないだろうし
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. ↑といった感じに分解してくれる。
707 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/04/12(木) 17:32:08 ID:NrgQlk+w0] >>704 は>>699 じゃなくて>>698 宛てだった。スマソ
708 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/04/12(木) 17:36:28 ID:1TsEBTx50] >>695 いろいろな書き方がある訳で、同速同条件のフィルターが2つある場合 字数は1バイトでも少ない方が良い。 >>698 はこの場合では1バイト増やした方がより良い事を証明したにすぎない。 お前の文章には人間的欠陥がある。 ID:L0tEZM2p0=己のものさしでしかもの言えない馬鹿
709 名前:名無しさん@お腹いっぱい。 [2007/04/12(木) 17:41:19 ID:V85EMG0Q0] ID:L0tEZM2p0=チンカス
710 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/04/12(木) 17:44:09 ID:ibYXc5q40] >作者がこれを知らないようなら教えてあげてくれ。 >作者がこれを知らないようなら教えてあげてくれ。 >作者がこれを知らないようなら教えてあげてくれ。 >作者がこれを知らないようなら教えてあげてくれ。 >作者がこれを知らないようなら教えてあげてくれ。 ( ´,_ゝ`)プッ