X



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

■ このスレッドは過去ログ倉庫に格納されています
2005/04/10(日) 16:15:47ID:a6rtBqIi0
peko鯖の稼動によりボトルネックの一つである事がより明らかになった
bbs.cgi作り直しプロジェクトです。

【開発環境の工事現場】
また挑戦。@2ch掲示板  http://dso.2ch.net/myanmar/
また挑戦2。@2ch掲示板 http://dso.2ch.net/yangon/

関連スレなどは >>2-5 くらい
2005/04/10(日) 16:16:36ID:a6rtBqIi0
【前スレ】
bbs.cgi 再開発プロジェクト
http://qb3.2ch.net/operate/kako/1053/10530/1053067870.html
bbs.cgi再開発プロジェクト2
http://qb3.2ch.net/operate/kako/1069/10691/1069144193.html
bbs.cgi再開発プロジェクト3
http://qb5.2ch.net/test/read.cgi/operate/1076666901/
bbs.cgi再開発プロジェクト4
http://qb5.2ch.net/test/read.cgi/operate/1101984763/
bbs.cgi再開発プロジェクト5
http://qb5.2ch.net/test/read.cgi/operate/1103495887/
2005/04/10(日) 16:18:13ID:a6rtBqIi0
【関連スレ】
【Project peko】2ch特化型サーバ・ロケーション構築作戦 Part17
http://qb5.2ch.net/test/read.cgi/operate/1107376477/
read.cgi再開発スレ Part2
http://qb5.2ch.net/test/read.cgi/operate/1105909861/
◆ 全サーバトリップ統一作戦
http://qb3.2ch.net/test/read.cgi/operate/1067245837/
bby -- スレッド情報一元管理システム構築スレ2
http://qb5.2ch.net/test/read.cgi/operate/1086868799/
【広告・宣伝】Rock54【自動排除】 4
http://qb5.2ch.net/test/read.cgi/operate/1083063122/
4讃岐 ◆IamaVIPdCI
垢版 |
NGNG
>>1
ぼみょー
5讃岐
垢版 |
2005/04/10(日) 16:53:50ID:affrfPZA0
>>1
ぼみょー
2005/04/10(日) 19:34:26ID:RGQJw3jU0
> 名前がデフォルト名無しさんの場合はDATに書き込まず、
> 表示するときにSETTING.TXTから読んで付けるようにしたら?
> 結構削減されるような気がスルですが。
でも、名無しさんの名前が変更になった場合、古い発言でも名前が変わるわけですよね。なんかそれは嫌な気が。
2005/04/10(日) 19:37:16ID:k8/TEzrI0
嫌モナにも、専ブラがSETTING.TXT読まなくちゃいけなくなるよそれ
NGNG
DATの削減ってそれほど優先度たかいの?
2005にしたのを考えてそうは思わないけど。
曜日を足したいなら2001年08月26日以前みたいに西暦を2桁にしてもよかったのに。
それなら、リンクつけないってのが最優先じゃない?

(read.cgiってSETTING.TXT読んでるんですか?)
2005/04/10(日) 20:06:57ID:a6rtBqIi0
bbs.cgiの今後の方向性が示されてれば的外れな提案とかが無くていいと思うけど
そのへんはどうなんでしょ?
2005/04/10(日) 20:47:33ID:bLJalbEm0
>>6
そんじゃ、DATの頭にデフォルト名無しを取り込んでおいて、それ展開するとか。
NGNG
>>10
スレッドの途中で名無しが変わった場合は?
スレ内で同じ名前を見つけたら参照するとかの方がまだマシかと。
2005/04/10(日) 21:31:55ID:bLJalbEm0
>>11
いや、DAT頭にある名無しとSETTING.TXTのとが違ったら、それはちゃんと名無しの名前を書き込むのよ。
で、次スレからはDAT頭の名無しも変わって省略とする。

bbs.cgiの負荷コストがかかりそうなので、却下されそうだな〜。
単純な思いつきで書いたので流して〜。
2005/04/10(日) 23:58:40ID:GvAuiQsq0
DATとかSETTING.TXTやるぐらいならSQL使ったほうがましだと思うが?
14FOX ★
垢版 |
NGNG
何のために?
NGNG
というか変にごちゃごちゃやると(ry
動いているものに手を入れたくな(ry
16FOX ★
垢版 |
NGNG
転送量をふやしたいから → 容量食うようにする
とか
人減らしたいから → ファイルopen数増やして全体にもっさりにする
とか

目的を書かなきゃ手段ばかりかかれても
混乱するばかりかな。
2005/04/11(月) 01:34:04ID:Aw1HHl/R0
>>16
手段が目的に決まってるだろーが。終了。
2005/04/11(月) 08:20:15ID:1RHO3vpt0
本7だったら相手にするだけ時間の無駄。
2005/04/11(月) 12:46:51ID:p1SWkTi/0
>>16
さりげない揶揄にワロタ
2005/04/16(土) 22:12:28ID:FazSDHGa0
>を& amp;に変換するのって必要ある?
<側だけ処理すればタグは禁止できるような。
(ブラウザによっては駄目なのかな)
2005/04/16(土) 22:30:18ID:eAUBMe3V0
確かにブラウザの表示は問題ないかもしれないが、気持ち悪いな。
というか、URIの&は&に置換するべきだと思う。
2005/04/17(日) 00:03:51ID:6o0jruEh0
http://なんとかかんとか?hoge=foo&amp=bar
とかなっているとアレだもんな
2005/04/19(火) 00:22:23ID:xt+Ii/KI0
連投チェックに引っかかった時のメッセージ変わったんだね
24†正座会場 ◆jmq5OZqMNg
垢版 |
NGNG
 
NGNG
Perlのプロファイリング
http://naoya.dyndns.org/~naoya/mt/archives/001159.html

bbs.cgiの「どこが」重いのかを調べるのに、使えそう。
NGNG
今は時間とれないので、とりあえず餌だけまいておこう。

qb6でやってみた(単にtestというレスの投稿)。

うーん、IsKoukokuがこんなに重いとは。
あと、jcodeの処理も結構重いのね。

Total Elapsed Time = 0.801193 Seconds
User+System Time = 0.175342 Seconds
Exclusive Times
%Time ExclSec CumulS #Calls sec/call Csec/c Name
58.1 0.102 0.125 1 0.1016 0.1252 main::IsKoukoku
35.3 0.062 0.055 2853 0.0000 0.0000 jcode::convert
26.8 0.047 0.024 2853 0.0000 0.0000 jcode::euc2euc
22.2 0.039 0.225 1 0.0390 0.2251 main::bbs_entryXXX
13.1 0.023 0.008 2853 0.0000 0.0000 jcode::h2z_euc
13.1 0.023 0.023 10 0.0023 0.0023 LWP::UserAgent::BEGIN
9.12 0.016 0.016 3 0.0052 0.0052 Net::DNS::Packet::dn_comp
9.12 0.016 0.039 2853 0.0000 0.0000 jcode::to
9.12 0.016 0.024 2853 0.0000 0.0000 jcode::euc
8.55 0.015 0.113 14 0.0011 0.0080 main::BEGIN
8.55 0.015 0.153 1 0.0155 0.1531 main::bbs_main
8.55 0.015 0.037 10 0.0015 0.0037 Net::DNS::Resolver::Base::BEGIN
4.56 0.008 0.008 1 0.0078 0.0078 Carp::shortmess
4.56 0.008 0.008 9 0.0009 0.0009 Socket::inet_aton
4.56 0.008 0.008 15 0.0005 0.0005 HTTP::Message::_elem
27FOX ★
垢版 |
NGNG
ほぅ
NGNG
>>27
きたきた(w。

これから外出してしまうので、あとで、これやりませんか。
IsKoukokuのコストを半分にするだけで、相当効果あるらしいです。
29FOX ★
垢版 |
NGNG
sub IsKoukoku
{
my ($GB) = @_;
my $In_Strings = $GB->{FORM}->{'MESSAGE'}; # shift or return ''; # 入力無しなら (・∀・) カエレ

# 読み込む。。。
my @Rock_word = @FOX_Ro54;

# EUC に変換して半角カナ→全角カナにしてして。
# まず対象となる文字列を変換。
$In_Strings = jcode::euc($In_Strings , 'sjis', 'z');

# NG ワードも変換。ついでに NG ワード、MD5値、フラグの 3 要素だけにしてリファレンスにしてして。
@Rock_word = map { [ (split /<>/)[5,6,7] ] } map { &jcode::euc($_, 'euc', 'z') } @Rock_word;

# では NG ワードのチェック。
foreach my $NG_word_ref (@Rock_word){
my $NG_word = $NG_word_ref->[0]; # リファレンスから NG ワードを取り出す。
eval { $In_Strings =~m<$NG_word> }; # NG ワード自体をチェック。以前の失敗を繰り返さないために。。。
return '' if $@; # 不正 NG ワードがあったときは OK とする。
if ($In_Strings =~m<$NG_word>) { # NG ワードをチェック。
$NG_word_ref->[0] = &jcode::sjis($&, 'euc'); # 該当すれば NG ワードを sjis に戻して。。。
return $NG_word_ref; # リファレンスを返す。
}
}
return '';
}
2005/04/22(金) 19:34:00ID:eRSH3+Ow0
jcodeを2853回も呼ぶのは妥当なの?みたいなw
NGNG
ではラムを飲みつつ待機していまつ♪

Shift_JIS のを丁稚どんにお渡しするようにすれば桶ですよね?
32FOX ★
垢版 |
NGNG
1) Shift Jis でリストを作る
2) リストには上限を作る (たとえば 200)

ですなぁ

ex10, live20 で Iskoukoku するーにしてみた
2005/04/22(金) 21:09:44ID:EY6AyDui0
あれ?なんでsjisでリスト?気のせいかな。。。
NGNG
>>32
> 2) リストには上限を作る (たとえば 200)
構造上「さくら」のみになるかもかもですです♪
2005/04/23(土) 00:11:59ID:8gV5d4mD0
リニアサーチしているからO(n)オーダになるのはしょうがないな……

Perlバインディング使ってcdbサーチにするとか、ハッシュサーチにするとか、
B-Treeサーチにするとか。
2005/04/23(土) 00:14:04ID:8gV5d4mD0
ん、まてよ。
「書き込みの中にNGワードが有ればTrue」
というのと
「NGワード自体をリファレンスで返す」
という処理があるのね。

前者だけでも既存のモジュールで追い出せばO(log n)の速度になると思うけど。
2005/04/23(土) 00:30:21ID:8gV5d4mD0
http://www.lr.pi.titech.ac.jp/~abekawa/perl/perl_bigdata.html#cdb
NGNG
今日のex10の様子を見る限り、
この部分のチューニングは、すんごい効果あるってことすね。
NGNG
NGワードが普通の文字列だったなら。。。
正規表現文字列だからちょと難儀かもかも。@「検索」に関してはむちむち♪

とりあえず、Jcodeを外したものを用意しておりますです。
2005/04/23(土) 00:49:53ID:rE0tuwui0
軽くなったところで。
本文だけじゃなく名前欄やメール欄をIsKoukokuのチェック対象にするのは難しいでしょうか。
NGNG
>>40
単純に考えると3倍界王拳になるので却下の悪寒。。。
2005/04/23(土) 00:58:40ID:rE0tuwui0
名前欄・メール欄・本文を連結したバッファを作って一回でチェックならどうでしょう。
(連結による誤判定も起こる可能性はありますが)
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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