X

bbs.cgi再開発プロジェクト Part8

レス数が950を超えています。1000を超えると書き込みができなくなります。
1root▲ ★
垢版 |
NGNG
bbs.cgiの開発作業をすすめていくためのスレッドです。

FOXさんの努力によりSpeedyCGIへの対応が行われ、
パフォーマンスの向上が図られたbbs.cgi。

・さらなるカスタマイズ
・パフォーマンスの向上
・微妙な虫取り
・残された秘境エリアの開拓

あたりをターゲットに。

前スレ:
bbs.cgi再開発プロジェクト7
http://qb5.2ch.net/test/read.cgi/operate/1130918407/
2007/03/01(木) 12:43:35ID:VOsid/540
>>955-958 subject.txt 処理の改造とかやってますた.今は直ってるかと.
2007/03/01(木) 12:46:51ID:PGooi+n50
はいはーい。
2007/03/09(金) 09:42:32ID:ijIcKlQN0
全部のサーバーでbbsdを使う方向になるんですかね?
bbsdまでのつなぎとしてsubback.htmlとindex.htmlを生成するデーモンとか考えてみたんですが
(subback部分は少し作った)
2007/03/09(金) 12:35:00ID:jn3Jaewt0
IsKoukoku() でこれは効くかも...... 最初のデータロードの部分は今

        @FOX_Ro54 = map { [ (split /<>/)[5,6,7] ] } <ADFILE>;

ってなってますが,これを

        @FOX_Ro54 = map {
                my @a = (split /<>/)[5 .. 7];
                eval { no warnings; [qr/$a[0]/, @a[1 .. $#a]]; };
        } <ADFILE>;

のようにすると,ロード時に regex がプリコンパイルされて,その後の処理が軽くなりそう.
さらに,regex のエラートラップもロード時に行って,IsKoukoku() 内では
eval が不要になる,と(ダメポなのだけ除外され,他の正常なのは使われます).
# eval 内でも警告は発生するので no warnings 入れてますが,-w や use warnings してなければ不要です.
安直にテストしてみると,

% perl -we'use strict; use Benchmark; open F, $ARGV[0]; our @thr = <F>; close F; \
open F, $ARGV[1]; @_ = <F>; close F; \
our @rocka = map [(split /<>/)[5 .. 7]], @_; \
our @rockb = map { my @a = (split /<>/)[5 .. 7]; eval { no warnings; [qr/$a[0]/, @a[1 .. $#a]]; }; } @_; \
timethese(1, { a => sub { foreach my $res (@thr) { no warnings; eval { $res =~ /@$_[0]/; } foreach (@rocka); } }, \
b => sub { foreach my $res (@thr) { no warnings; $res =~ /@$_[0]/ foreach (@rockb); } } });' \
alaska/dat/1147437176.dat Rock54Data
Benchmark: timing 1 iterations of a, b...
         a: 42 wallclock secs (41.94 usr +  0.00 sys = 41.94 CPU) @  0.02/s (n=1)
            (warning: too few iterations for a reliable count)
         b: 42 wallclock secs (41.91 usr +  0.01 sys = 41.92 CPU) @  0.02/s (n=1)
            (warning: too few iterations for a reliable count)

% perl -we'use strict; use Benchmark; open F, $ARGV[0]; our @thr = <F>; close F; \
open F, $ARGV[1]; @_ = <F>; close F; \
our @rocka = map [(split /<>/)[5 .. 7]], @_; \
our @rockb = map { my @a = (split /<>/)[5 .. 7]; eval { no warnings; [qr/$a[0]/, @a[1 .. $#a]]; }; } @_; \
timethese(1, { a => sub { foreach my $res (@thr) { no warnings; eval { $res =~ @$_[0]; } foreach (@rocka); } }, \
b => sub { foreach my $res (@thr) { no warnings; $res =~ @$_[0] foreach (@rockb); } } });' \
alaska/dat/1147437176.dat Rock54Data
Benchmark: timing 1 iterations of a, b...
         a: 42 wallclock secs (41.42 usr +  0.02 sys = 41.44 CPU) @  0.02/s (n=1)
            (warning: too few iterations for a reliable count)
         b: 20 wallclock secs (20.25 usr +  0.00 sys = 20.25 CPU) @  0.05/s (n=1)
            (warning: too few iterations for a reliable count)

プリコンパイルしたのを m// 内に入れるとあまり意味ないっぽいですが,
単独で使えば二倍速ぐらいになるらしいと.

ところで,

                        $NG_word_ref->[0] = $matched; return $NG_word_ref;

の部分は

                        return [$matched, @$NG_word_ref[1 .. $#$NG_word_ref]];

のようにしないと,@FOX_Ro54 の中身を改変してしまう悪寒......

削除系呪文の bbsd 対応も行われ雪だるま以外での bbsd 利用への道も開けてきたし,
T-Banana の実験が一段落したら,このあたりもぼちぼちやりましょうってことで.
2007/03/09(金) 13:12:32ID:jn3Jaewt0
>>961 んと,それは bbsd とどういう部分で違うんでしょうか?
例えば subject.txt のデータを内部的に保持して {subback,index}.html を
生成するとなると,ほとんど bbsd と同じことやるってことになりそうな......
2007/03/09(金) 13:23:37ID:ijIcKlQN0
>>963
subject.txtを読み出して、{subback,index}.htmlを生成します。
既存のbbs.cgiを完全にサボリン状態にしてこれを動かせば負荷が減るかな、と。

別にデーモンでなくてcronで呼ぶ形にしてもいいと思います。
cronは秒単位指定できないのでいろいろ面倒ですが

snowmanシステムに置き換わるならそれのほうがいいです
2007/03/09(金) 13:33:22ID:jn3Jaewt0
>>964 なるほど......つまり bbsd のようにレスデータ等を一元管理するのではなく,
bbs.cgi とは独立して動いて,subject データはファイルから読み込むと.
アイデアとしてはおもしろいですね.まぁ,bbsd 利用を広げる上での障害は
主に削除系呪文が未対応ゆえということだったんですが,その点は今まさに解決しそうだと.
あとはいろいろ状況を見ながらぼちぼちって感じで.
2007/03/10(土) 00:44:22ID:???0?PLT(23632)
>>962
なるほど、正規表現のコンパイルも
出航時の一度だけにしようというアイディアですか。

もしアレな正規表現を間違って入れてしまうと、
> (ダメポなのだけ除外され,他の正常なのは使われます)

になるというside effectもあるのかな。
2007/03/10(土) 00:44:54ID:???0?PLT(23632)
>>966
△ 正規表現のコンパイルも
○ Rock54データ中の正規表現のコンパイルも
2007/03/10(土) 07:56:06ID:YkaOYARa0?2BP(6811)
(´-`).。oO(bbs.cgiを眺められるのはいぃよなぁ。。。)

→ところで,
→$NG_word_ref->[0] = $matched; return $NG_word_ref;

手元の資料では、、、
my $NG_word = $NG_word_ref->[0]; # リファレンスから取り出し。
if (my $matched = eval{$In_Strings =~ m<$NG_word>}) { return $NG_word_ref } # 合致したらリファレンスを返す。
# 不正 NG ワードがあったり引っかからなければスキップ

・・・となっています。その後に手を入れたのかなぁ。。@IsKoukoku.20050605.txt
2007/03/18(日) 21:26:54ID:cS2U8n/I0
・ トラックバックは POST のみ受け入れ.
・ @FOX_Ro54 を改変しないように(>>962 の下のやつ).

をとりあえず実施(>>962 の上のやつはまた改めて).
2007/03/18(日) 21:58:22ID:n80E4TCD0?2BP(6811)
つ△
2007/03/18(日) 22:06:25ID:cS2U8n/I0
>>970 ん......どっか悪影響出てます?
2007/03/18(日) 22:34:09ID:n80E4TCD0?2BP(6811)
あ、いやあのその、、、(照)
出ないことを祈りつつみたいなおまじないってことで(なにそれ)
2007/03/18(日) 22:54:36ID:xG9U0K1y0
むしろこの件によって三角をひとつとりましょう
2007/03/19(月) 08:53:12ID:7yuBVXtp0
そうか、いいこと思いついたぞ。
未承諾サンがチョンボしたら★を付けさせよう。
2007/03/19(月) 21:05:42ID:Ot7SI53P0
それを本人の承諾なしに行う,と...... >>974
2007/03/19(月) 23:28:05ID:RrEDh58T0?2BP(6811)
二萬
二萬
二萬
二索
三索
四索
七索
八索
九索
五筒
六筒
七筒


上家から東キタ━━━(゚∀゚)━━━ッ!!ロン♪
2007/03/19(月) 23:33:52ID:IIr6nvQd0
うはwww本当に送ったんだw
2007/03/21(水) 19:16:31ID:Ye3ntEmu0
私達の恥辱

同胞達、意外にもある人は1首私達の歌に関して歌って、歌詞の要点:
日本のやつは彼が人だと言って、全世界のブタはすべて笑って、
意外にも私達をののしるのが人ではありません。。。。。。。。
みんなに団結してもらうようにしましょう。。。。
どのようにの報復を話し合います:http://www.netgamelivedoor.com/online/

979root▲▲ ★
垢版 |
2007/04/03(火) 11:25:18ID:???0?PLT(74072)
質問・雑談スレ252@運用情報板
http://qb5.2ch.net/test/read.cgi/operate/1175082659/215

うーん。例のはなもげらの時にそうならないようにしたはずなんですが、、、。
あとでみてみるです。
980root▲▲ ★
垢版 |
2007/04/03(火) 11:54:11ID:???0?PLT(74072)
>>979
質問・雑談スレ252@運用情報板
http://qb5.2ch.net/test/read.cgi/operate/1175082659/234-235

ううむ。再現しないのかしら。

IE/Firefox/Opera等の通常のブラウザや
c.2ch.netで再現するようであれば、報告おながいします。
2007/04/03(火) 13:08:20ID:???0?PLT(74072)
質問・雑談スレ252@運用情報板
http://qb5.2ch.net/test/read.cgi/operate/1175082659/239-247

ふむ、、、。

あらまほしき仕様から考えたほうがよさげ?
2007/04/03(火) 14:36:51ID:vyl/AJLL0
1. 法的確認の文面は鼻もげらがない時だけ出して,鼻もげらはあるけどポンの(再)設定って時は
その文面でなく「荒らし対策で Cookie 〜」云々の文面だけにする.

2. 鼻もげらはあるけどポンの(再)設定って時は鼻もげら Cookie もリセットする.

のいずれかですかねぇ.


# 980 超えたので,dat 落ち注意かな......
2007/04/03(火) 20:20:46ID:???0?PLT(74072)
>>982
そうですね。

# 1. かなぁ。
2007/04/04(水) 20:18:21ID://gbn83p0
レス数が950を超えています。1000を超えると書き込みができなくなります。
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況