bbs.cgi再開発プロジェクト Part8
レス数が950を超えています。1000を超えると書き込みができなくなります。
bbs.cgiの開発作業をすすめていくためのスレッドです。
FOXさんの努力によりSpeedyCGIへの対応が行われ、
パフォーマンスの向上が図られたbbs.cgi。
・さらなるカスタマイズ
・パフォーマンスの向上
・微妙な虫取り
・残された秘境エリアの開拓
あたりをターゲットに。
前スレ:
bbs.cgi再開発プロジェクト7
http://qb5.2ch.net/test/read.cgi/operate/1130918407/ printf $tmpl, '.', $cnt, index $_, '.', 0 == 8
? substr $_, 14
: substr $_, 15
;
で良さそうな。。。
でもってIsKoukokuみたいに冗長なループの中でないのなら、/oしてあげればそんなに負荷とかは変わらないような。。。@RegExp. >>880をみると、subback.htmlの作成はそんなにコスト高くはない? まぁ,subject.txt, subback.html, index.html あたりは bbsd 使えば,
いずれ bbs.cgi では処理しなくて済むようになる部分ではありますからね.
IsKoukoku みたいなのはどっちにしろ bbs.cgi でやらなきゃならない部分ですが. そういえば>>864の4096byte毎dat破損はどうするの?
#つかここ(bbs.cgi)じゃなかったり? レスを書き込んでるところをprintからsyswriteに変えればいいんでない >>937 とりあえず修理してほしいって話なら↓かな?
http://qb5.2ch.net/test/read.cgi/operate/1132072662/l50
今後の対策ならここの範疇の話ですが.
# まぁ,これも bbsd 使えば起きなくなるはずですけど. あ、一応対策できそうなら〜ということで
でも考えれば4096byte行くような事はそうないだろーし…無視で良いのかな なんとなくsubback.html、スレ立ての順にソートできないかな
と言ってみるテスト だいぶ前にも書いた気がする
ヘッドラインの代用になるから便利だと思うけどまだ実現してない 5行くらいで実現可能なんだけど、運営が導入してもいいと腰を上げない限りは無理なんだろうな http://qb5.2ch.net/test/read.cgi/sec2chd/1172332070/6
名無しさん必死だな<>sage<>2007/02/24(土) 21:50:02 GxILijLRP<>ハーモニクス金玉<>ハーモニクス金玉<>p2.2ch.net(151880)222.7.56.145<>210.135.99.5<>
( )<>Monazilla/1.00 (P2/p2.2ch.net; p2-client-ip: 222.7.56.145; p2-user: 151880)
222.7.56.145 → wbcc6s08.ezweb.ne.jp
p2+携帯の時に芋掘りログに携帯のシリアル番号が記録されていない模様。
そして"( )"ってなぁに それ、p2でレスするときに、p2自身がアクセスされたときのデータつけてるだけだから。
2ch側がどうこう言う問題じゃない。 PCでIP出してるんだから
携帯も識別番号出すべきかと
荒らしに寛容すぎ なんかpc11鯖移転前後でスレタイに空白がついてる。
移転前からあったスレで移転後に書き込みが無いスレ。 以前から移転後はそんなんだよ
レスのない古いスレはず〜〜〜っと空白付いたまんま index.htmlは壊れてるけど、subject.txtは壊れてないように見える 1169114098.dat<>もうね阿保か馬鹿かと11
(913)
1171239491.dat<>記号<>&"' (4)
1171239344.dat<>記号<>&"'
(42)
1155409133.dat<>JavaScript版read.cgiの動作試験はここで (116) >>955-958 subject.txt 処理の改造とかやってますた.今は直ってるかと. 全部のサーバーでbbsdを使う方向になるんですかね?
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 の実験が一段落したら,このあたりもぼちぼちやりましょうってことで. >>961 んと,それは bbsd とどういう部分で違うんでしょうか?
例えば subject.txt のデータを内部的に保持して {subback,index}.html を
生成するとなると,ほとんど bbsd と同じことやるってことになりそうな...... >>963
subject.txtを読み出して、{subback,index}.htmlを生成します。
既存のbbs.cgiを完全にサボリン状態にしてこれを動かせば負荷が減るかな、と。
別にデーモンでなくてcronで呼ぶ形にしてもいいと思います。
cronは秒単位指定できないのでいろいろ面倒ですが
snowmanシステムに置き換わるならそれのほうがいいです >>964 なるほど......つまり bbsd のようにレスデータ等を一元管理するのではなく,
bbs.cgi とは独立して動いて,subject データはファイルから読み込むと.
アイデアとしてはおもしろいですね.まぁ,bbsd 利用を広げる上での障害は
主に削除系呪文が未対応ゆえということだったんですが,その点は今まさに解決しそうだと.
あとはいろいろ状況を見ながらぼちぼちって感じで. >>962
なるほど、正規表現のコンパイルも
出航時の一度だけにしようというアイディアですか。
もしアレな正規表現を間違って入れてしまうと、
> (ダメポなのだけ除外され,他の正常なのは使われます)
になるというside effectもあるのかな。 >>966
△ 正規表現のコンパイルも
○ Rock54データ中の正規表現のコンパイルも (´-`).。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 ・ トラックバックは POST のみ受け入れ.
・ @FOX_Ro54 を改変しないように(>>962 の下のやつ).
をとりあえず実施(>>962 の上のやつはまた改めて). あ、いやあのその、、、(照)
出ないことを祈りつつみたいなおまじないってことで(なにそれ) そうか、いいこと思いついたぞ。
未承諾サンがチョンボしたら★を付けさせよう。 それを本人の承諾なしに行う,と...... >>974 二萬
二萬
二萬
二索
三索
四索
七索
八索
九索
五筒
六筒
七筒
東
上家から東キタ━━━(゚∀゚)━━━ッ!!ロン♪ 私達の恥辱
同胞達、意外にもある人は1首私達の歌に関して歌って、歌詞の要点:
日本のやつは彼が人だと言って、全世界のブタはすべて笑って、
意外にも私達をののしるのが人ではありません。。。。。。。。
みんなに団結してもらうようにしましょう。。。。
どのようにの報復を話し合います:http://www.netgamelivedoor.com/online/
質問・雑談スレ252@運用情報板
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で再現するようであれば、報告おながいします。 1. 法的確認の文面は鼻もげらがない時だけ出して,鼻もげらはあるけどポンの(再)設定って時は
その文面でなく「荒らし対策で Cookie 〜」云々の文面だけにする.
2. 鼻もげらはあるけどポンの(再)設定って時は鼻もげら Cookie もリセットする.
のいずれかですかねぇ.
# 980 超えたので,dat 落ち注意かな...... レス数が950を超えています。1000を超えると書き込みができなくなります。