bbs.cgiの開発作業をすすめていくためのスレッドです。
FOXさんの努力によりSpeedyCGIへの対応が行われ、
パフォーマンスの向上が図られたbbs.cgi。
・さらなるカスタマイズ
・パフォーマンスの向上
・微妙な虫取り
・残された秘境エリアの開拓
あたりをターゲットに。
前スレ:
bbs.cgi再開発プロジェクト7
http://qb5.2ch.net/test/read.cgi/operate/1130918407/
bbs.cgi再開発プロジェクト Part8
レス数が950を超えています。1000を超えると書き込みができなくなります。
1root▲ ★
NGNG2007/03/09(金) 09:42:32ID:ijIcKlQN0
全部のサーバーでbbsdを使う方向になるんですかね?
bbsdまでのつなぎとしてsubback.htmlとindex.htmlを生成するデーモンとか考えてみたんですが
(subback部分は少し作った)
bbsdまでのつなぎとしてsubback.htmlとindex.htmlを生成するデーモンとか考えてみたんですが
(subback部分は少し作った)
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 の実験が一段落したら,このあたりもぼちぼちやりましょうってことで.
@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 の実験が一段落したら,このあたりもぼちぼちやりましょうってことで.
>>961 んと,それは bbsd とどういう部分で違うんでしょうか?
例えば subject.txt のデータを内部的に保持して {subback,index}.html を
生成するとなると,ほとんど 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システムに置き換わるならそれのほうがいいです
subject.txtを読み出して、{subback,index}.htmlを生成します。
既存のbbs.cgiを完全にサボリン状態にしてこれを動かせば負荷が減るかな、と。
別にデーモンでなくてcronで呼ぶ形にしてもいいと思います。
cronは秒単位指定できないのでいろいろ面倒ですが
snowmanシステムに置き換わるならそれのほうがいいです
>>964 なるほど......つまり bbsd のようにレスデータ等を一元管理するのではなく,
bbs.cgi とは独立して動いて,subject データはファイルから読み込むと.
アイデアとしてはおもしろいですね.まぁ,bbsd 利用を広げる上での障害は
主に削除系呪文が未対応ゆえということだったんですが,その点は今まさに解決しそうだと.
あとはいろいろ状況を見ながらぼちぼちって感じで.
bbs.cgi とは独立して動いて,subject データはファイルから読み込むと.
アイデアとしてはおもしろいですね.まぁ,bbsd 利用を広げる上での障害は
主に削除系呪文が未対応ゆえということだったんですが,その点は今まさに解決しそうだと.
あとはいろいろ状況を見ながらぼちぼちって感じで.
>>962
なるほど、正規表現のコンパイルも
出航時の一度だけにしようというアイディアですか。
もしアレな正規表現を間違って入れてしまうと、
> (ダメポなのだけ除外され,他の正常なのは使われます)
になるというside effectもあるのかな。
なるほど、正規表現のコンパイルも
出航時の一度だけにしようというアイディアですか。
もしアレな正規表現を間違って入れてしまうと、
> (ダメポなのだけ除外され,他の正常なのは使われます)
になるというside effectもあるのかな。
(´-`).。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
→ところで,
→$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
つ△
>>970 ん......どっか悪影響出てます?
あ、いやあのその、、、(照)
出ないことを祈りつつみたいなおまじないってことで(なにそれ)
出ないことを祈りつつみたいなおまじないってことで(なにそれ)
2007/03/19(月) 08:53:12ID:7yuBVXtp0
そうか、いいこと思いついたぞ。
未承諾サンがチョンボしたら★を付けさせよう。
未承諾サンがチョンボしたら★を付けさせよう。
それを本人の承諾なしに行う,と...... >>974
二萬
二萬
二萬
二索
三索
四索
七索
八索
九索
五筒
六筒
七筒
東
上家から東キタ━━━(゚∀゚)━━━ッ!!ロン♪
二萬
二萬
二索
三索
四索
七索
八索
九索
五筒
六筒
七筒
東
上家から東キタ━━━(゚∀゚)━━━ッ!!ロン♪
2007/03/19(月) 23:33:52ID:IIr6nvQd0
うはwww本当に送ったんだw
2007/03/21(水) 19:16:31ID:Ye3ntEmu0
私達の恥辱
同胞達、意外にもある人は1首私達の歌に関して歌って、歌詞の要点:
日本のやつは彼が人だと言って、全世界のブタはすべて笑って、
意外にも私達をののしるのが人ではありません。。。。。。。。
みんなに団結してもらうようにしましょう。。。。
どのようにの報復を話し合います:http://www.netgamelivedoor.com/online/
同胞達、意外にもある人は1首私達の歌に関して歌って、歌詞の要点:
日本のやつは彼が人だと言って、全世界のブタはすべて笑って、
意外にも私達をののしるのが人ではありません。。。。。。。。
みんなに団結してもらうようにしましょう。。。。
どのようにの報復を話し合います:http://www.netgamelivedoor.com/online/
質問・雑談スレ252@運用情報板
http://qb5.2ch.net/test/read.cgi/operate/1175082659/215
うーん。例のはなもげらの時にそうならないようにしたはずなんですが、、、。
あとでみてみるです。
http://qb5.2ch.net/test/read.cgi/operate/1175082659/215
うーん。例のはなもげらの時にそうならないようにしたはずなんですが、、、。
あとでみてみるです。
>>979
質問・雑談スレ252@運用情報板
http://qb5.2ch.net/test/read.cgi/operate/1175082659/234-235
ううむ。再現しないのかしら。
IE/Firefox/Opera等の通常のブラウザや
c.2ch.netで再現するようであれば、報告おながいします。
質問・雑談スレ252@運用情報板
http://qb5.2ch.net/test/read.cgi/operate/1175082659/234-235
ううむ。再現しないのかしら。
IE/Firefox/Opera等の通常のブラウザや
c.2ch.netで再現するようであれば、報告おながいします。
質問・雑談スレ252@運用情報板
http://qb5.2ch.net/test/read.cgi/operate/1175082659/239-247
ふむ、、、。
あらまほしき仕様から考えたほうがよさげ?
http://qb5.2ch.net/test/read.cgi/operate/1175082659/239-247
ふむ、、、。
あらまほしき仕様から考えたほうがよさげ?
1. 法的確認の文面は鼻もげらがない時だけ出して,鼻もげらはあるけどポンの(再)設定って時は
その文面でなく「荒らし対策で Cookie 〜」云々の文面だけにする.
2. 鼻もげらはあるけどポンの(再)設定って時は鼻もげら Cookie もリセットする.
のいずれかですかねぇ.
# 980 超えたので,dat 落ち注意かな......
その文面でなく「荒らし対策で Cookie 〜」云々の文面だけにする.
2. 鼻もげらはあるけどポンの(再)設定って時は鼻もげら Cookie もリセットする.
のいずれかですかねぇ.
# 980 超えたので,dat 落ち注意かな......
2007/04/04(水) 20:18:21ID://gbn83p0
ほ
レス数が950を超えています。1000を超えると書き込みができなくなります。
ニュース
- 石破首相、「就職氷河期世代」で今も不安定な仕事に就いている人に農業、建設業、物流業へ就労拡大指示 ★11 [お断り★]
- 「Fラン大学に進学するなら高卒のほうがマシ」は本当か。学歴はどこまで意味があるのか★2 [パンナ・コッタ★]
- トランプ政権、日本に軍民両用の造船要請へ 米海軍長官 [蚤の市★]
- 【MLB】ドジャース・大谷翔平、2戦連続マルチで逆転勝ちに貢献! 打率.286に上昇… 先発緊急降板も首位と0.5差 [冬月記者★]
- 【芸能】小芝風花と佐藤健が初共演でダブル主演! 韓国の話題作『私の夫と結婚して』を日本で連ドラ化 [冬月記者★]
- 米財務長官の為替発言に関する報道、100%事実でない=三村財務官 [少考さん★]
- 読売新聞、フェイクニュースも流してしまい財務省ガチおこ [256556981]
- 大阪万博+810000 [931948549]
- 辛坊治郎「関西万博、リアルに高齢者が全然いない、なんでメディアは報じないのか」 [633746646]
- 万博協会「チケットが1,247万枚しか売れないの1,800万枚売れないと赤字になる」 [633746646]
- JA、今年の新米の買取価格を昨年より3〜4割引き上げへ。更に値上がりへ🌾 [256556981]
- 読売新聞「関西万博7割が50歳以上。高齢者の万博」 [633746646]