★負荷軽減対策委員会(Perl、PHP)★
サーバ上にPerlやPHPを置く場合、何よりも重視しなければ
ならないのはサーバへの「負荷」。
負荷の高いCGIの使用は削除対象となるのが目に見えてます。
負荷を軽減させるにはどうすればいいか?
どういう書き方をすればいいか?
そんな委員会を開設しました。 SpeedyCGIでどうやったら、負荷が高いときのエラーが無くなるんだろう。
もう訳がわからん。 >>471
負荷を軽減させるために、>>470がspeedyCGIを入れたんだろ。
ここは、負荷軽減の為のスレだよ。 PHPの掲示板なんですができるだけ負荷がかからないログの読み込み方法ってどんなのがありますか?
今は書き込みや読み込みの時にfile()で全部取得しているんですがログが増えると負荷が大きくなりそうな気がするので。 >476
ないですね!
逆に、なんでDB使うのいやなんですか?! >478
474が悩み事の矛盾に気がつかないからだよ! >>477
2ちゃん程度の規模でもDBなぞ使ってないんだが。
ていうか、逆に2ちゃんをDBで書き直したらえらい事になると思うが・・・。
普通のBBSって書き込みはFIFOだし、読み出しはシリアルだから
逆にDB使うほうが負荷が大きくなる。 DB使うのが嫌っていうか使ったことないので
DB使わずにfile()以外のやり方ないかと思ったんですが 「スレ読めよ」か。「スレタイ読めよ」と勘違いした。 >474
データ構造を固定長にしてバイナリファイルに格納しておき
fseek fread fwrite などを使えば部分処理が出来るから負荷は
減ると思うよ SpeedyCGIでエラーが頻発したので、PerlからCに移植した。
えらく辛かったが、めちゃくちゃ速くなった。 apacheの軽量化が威力あると言うが、
具体的にどういったモジュールを消せば良いのだろう。 >488
とりあえずスレ違いと思われ
スクリプト上で解決可能な話題が主題かと思う 人よりちょっと知識の多い香具師が少ない香具師を馬鹿にするスレはここですね。 >>490
apacheもスクリプトも両方チューニングして、
「負荷軽減対策委員会」と呼べるような気がするのだが… >>1を見る限りそうとは思えないけどな
方針変更という事で・・・ Apacheのチューニングはスクリプトの有無や出来とは関係なく
できることだし、別問題じゃないか? 足りない?
mod_mime_magic,mod_dir,mod_auth,mod_access,mod_cgi,mod_log_config,(mod_env)
(mod_perl)
>>501
速度重視ならDSOを使わな方が良いという話で良い?
>>502
そういうこったな(w
>>501
「あぱちのmoduleとして動作させると」とか
書いとけばつっこまれなかったのにな 素直に専用鯖借りてmod_perlとgzip圧縮でも使いなさい。 変数より定数使ったほうがやっぱ軽いのかなぁ・・・
あとは定数と直接数値を書き込むのはどっちが軽いのだろうか >>509
ぐだぐだいう前にベンチしろ、このヴォケが
ね、みんなローカルでPerlをテストする時、何のソフト使ってるの? Winで簡単なPerlだったらプロンプトで十分だけど。
Perlを始めよう、ならエディタから直接プロンプト起動できるし良い。
俺はtxt,HTML,Perl,PHP,SQL,C,Java,XMLなど全部ひとつのエディタで
やりたいからEmEditor3を使ってる。 ね、みんなローカルでPerlをテストする時、何のソフト使ってるの??
自分は
エディタ・・・秀丸
ブラウザ・・・アパッチ 特に深いことは考えてない。
エディタ:QX(慣れてる&コマンドラインに渡せるから)
サーバー:ANHTTPD(既に入れてたから)
なんだけど、やっぱ、アパッチの方がいいかね?
……スレ違いだけど、この話題続けていいもんかね。 負荷軽減にはあまり関係ない。
エディタはPerlエディタスレ、サーバ話は何処が良いんだ。
無難に初心者質問スレでも薦めておくか。
ところでブラウザがアパッチって凄いな。
あ、ごめん、サーバの間違え
>>512がブラウザ?って・・・
テストサーバーで、JAVAみたいに「;がありません。」など、
エラーの内容を出力してくれるサーバーって無いの? >>521
例えばCGIでエラーを標準出力に表示するのは? >>522
え?そんなのあるの?知らなかった・・・・
やり方は? >>523
言語にもよるけど、rubyならこんなかんじで
begin
# 例外が発生する可能性がある処理
rescue 例外
puts "#{$!} (#{$!.type})"
puts $@.join("\n")
end
perlはよく知らないけどこれでできるかな?
eval 'なんかの処理';
print $@ if($@);
巷に出回る perl CGI って、
1. グローバル変数多し、my レキシカル変数使わず
2. 関数分割せず、ベタ書き
3. ヒアドキュメントを使わず、print '' の嵐
なものが多い。こんな手法が負荷軽減に貢献すんのか?
意見求む。 >>526
> 2. 関数分割せず、ベタ書き
について負荷軽減との関連性についてのご教授お願いします。 軽減はしますよ。
でも、HTML を軽くするために、すべての改行を取り払ってサイズを小さくしよう的な
アプローチですにゃ。そこまで必死な人は、すればいいにゃ。 ベタ書きのほうが負荷はかからないのは言うまでも・・・ ブラウザゲーム作るならやっぱりphpのほうがええかな? >>531
負荷を考えれば、そうだけど。
普及を考えれば、どうかにゃあ。
ヒアドキュメントってprint"と変わらないんじゃなかったっけか? ケース1:print 文の嵐
print '<HTML>';
print .........
print '</HTML>';
ケース2:print 文いっかいだけ
print '<HTML>
.......
</HTML>';
ケース3:ヒアドキュメントで print 文いっかいだけ
print <<'END of HTML';
<HTML>
.........
</HTML>
END of HTML
こういうのを比べてるってこと? ヒアドキュメントかどうかは関係がないと思うけど。
ケース2とケース3は、(ヒアドキュメントの末尾の改行を除けば)等価でしょ?
じゃなかったら首つるです。
違いが出てくるとすれば、パース・・構文解析にかかる時間。
それも有意差は出ないでしょう。
異論ありますかにゃ? >>535
ttp://boobar.hp.infoseek.co.jp/bench/print.txt PHPAってどのくらい早くなるんだろうか。
…測定はやはり浮動小数点か何かでやったらいいのだろうか。 PHPAってコンパイルキャッシュするだけか。
(´・ω・`)ケイゲンサレタノカ、ヨクワカンナカッタ。 >>540
PHPA、だいぶというかかなり違うようですが。 Turck MMCacheってのを使ってる奴いますか?
http://turck-mmcache.sourceforge.net/
能書きのとおりなら「最速」だそうだが。 >526
my 変数の方が速いの?
速度とか関係無しにstrict通るようにした方が良いだろうって話は置いといて。
>>544-545
ttp://boobar.hp.infoseek.co.jp/bench/scope.txt メモリにかかる負荷を測定するってことは出来ますかね。 ああ俺もそれ調べたい。
と言うかメモリ使用量とかどうやって調べてるんだろ…。
測定用のモジュールとかあるのかな? >>547-548
OS に依る。Linux や *BSD なら vmstat(8) とか top(1) で
別ターミナルから測定。 Winは無理っすか。
タスクマネージャみたいな監視ツール作ってログ取るようにすれば良いんかな…俺にゃ無理だけど…。 掲示板とかのスクリプトでHTMLを吐き出してそれにアクセスさせるってあるけど
ログファイル自体をHTMLにするって効率悪いよねぇ。 >>551
変換するのは1回だがアクセスされるのは何度もあるからいいのよ
逆にアクセス解析とかカウンターとかは変換するだけ無意味って言うか
ログなんて管理人しか見らんし。
今日、会社休みます。。。
会社の負荷を減らすためにネ! 堕スレ化したの?
でも、結局負荷軽減ってアルゴリズム考えた方が、
myがどーの、ヒアドキュメントがどーの、言うより意味あるよね。
言語選択ではある程度答え出てるし、このスレの意義って。。。 ちょっとした負荷を減らすために非常に参考になりました やっぱ表示速度を優先するか
サーバの負荷を優先するか。
きわどいな…