★負荷軽減対策委員会(Perl、PHP)★
■ このスレッドは過去ログ倉庫に格納されています
0001ジークハルト ◆VUxx/EwNXI
02/10/15 10:33ID:ifgLRUybならないのはサーバへの「負荷」。
負荷の高いCGIの使用は削除対象となるのが目に見えてます。
負荷を軽減させるにはどうすればいいか?
どういう書き方をすればいいか?
そんな委員会を開設しました。
0448あぼーん
NGNG0449nobodyさん
03/08/22 23:56ID:???>>446じゃないが、DBIは遅い気がする。
あとDBIじゃなかったかな?サーバー名にIPアドレスじゃなくて
FQDN指定するとident投げるのって。
identが繋がらないとタイムアウトするまで固まるんだよな。
0450nobodyさん
03/08/23 00:30ID:???Perl/CGIで利用しているところが多いのにビビりました。
DBMS使う以上、何らかの効率性を望んでいるのだと思うけど、何故Perl/CGIなんだと問いつめたいよ。
0451nobodyさん
03/08/23 00:44ID:12CD5sBt逆に、Perl/CGIだと何がだめなのか説明してみてください。
0452↓このURLにぴんときたら2chビューア
03/08/23 01:44ID:???http://homepage.mac.com/hiroyuki45/hankaku
0453nobodyさん
03/08/23 09:33ID:???漏れはMysq;でPerl/CGIしてるけど、移植元がperlだったから単純に鯖の負荷軽減が目的だったりしたが・・・
それに、Phpだと複雑なソース書ききれんかったろうってのもあるわけだが、お前さんはなにでやれと?
0454nobodyさん
03/08/23 13:18ID:???0455nobodyさん
03/08/23 16:29ID:IynKNpCXある位置から数行くらい読み込む時、
10kbくらいのファイルと、300kbくらい(要するにでかい)ファイルでは
負荷に違いってあります?
open IN, ...;
for($i=0; $i<10; $i++){
$line = <IN>;
...処理
}
close IN;
みたいなプログラムでつ。
0456nobodyさん
03/08/23 16:46ID:???どうやって「ある位置」までファイルポインタを移動させるかに依る。
行単位で空読みさせて移動するよりは seek 一発の方が速い。
その例だとファイルの先頭からだから変わらん。
0457nobodyさん
03/08/23 19:02ID:V3x8NgSHPerlで書けてPHPで書けない「複雑ソース」って何?
0458nobodyさん
03/08/23 19:07ID:???0459nobodyさん
03/08/23 19:20ID:???最近あまり追ってないんだが、
PHPってtermiosによる端末制御できたっけ?
fork()は出来るけどpipe()は出来たっけ?
あと、PHPはスコープが滅茶苦茶だから(まぁPerlも変だけど)
あまり大きいソースを多人数で書くのには向いてないと思う。
0460455
03/08/24 10:10ID:XoFfp7Kp1行の文字数が不定なんでseekで飛ぶことが難しいんす。
2chログのように301-400だけ表示みたいな場合は
やっぱ空読みしてるんかな。
0462455
03/08/25 11:33ID:???適当にread系のcgiを漁ってみたけど、やっぱ空読みしてるみたいだわ。
0464nobodyさん
03/08/25 13:26ID:???1、行ごとのファイルポインタを記録してある。
2、一定件数ごとに、ファイルポインタを記録してある。
3、2chは入力値の長さが決まっているから、固定長フォーマットにしてある。
これだけのアクセス数があるところで、空読みは考えにくいな。
板のトップで、数千行単位で空読みされるのですか?
0465nobodyさん
03/08/25 14:55ID:JfnblB1o今は知らないけど、今までのVerでは思いっきり空読みしてるよ。
↓以前のread.cgi空読み部分。
else
{
if(nn_st && lineNo < nn_st) continue ;
if(nn_to && lineNo > nn_to) continue ;
if(nn_ls && line < lineMax - nn_ls) continue ;
}
ファイルのオープンってI/Oの負荷がでかいから、
ファイルポインタを記録/読出しするのも結構な負荷になる。
あぼーんの処理も面倒になるし1000行空読みの負荷がたいしたこと
ない(実際やってみ)事を考えると、大してメリットはないと思われる。
ちなみに2chは固定長フォーマットではないし、板のトップは書き込み時
に更新されるだけだから、read.cgiより呼び出される回数は圧倒的に少なく
それほど問題にならない気が。
0467nobodyさん
03/08/27 01:27ID:???それならJcodeなんかは先頭でuseせずに
送られてきたデータのチェック済ませてから読み込ませた方が良いのかな。
#チェックにJcode使うなら別だけど
0468nobodyさん
03/08/27 02:23ID:???http://www.perldoc.com/perl5.8.0/pod/func/use.html
http://www.perldoc.com/perl5.8.0/pod/func/require.html
0469nobodyさん
03/09/04 01:48ID:???0470nobodyさん
03/09/05 00:46ID:???もう訳がわからん。
0473nobodyさん
03/09/17 00:18ID:???0474nobodyさん
03/09/17 21:25ID:Rf3lCYFV今は書き込みや読み込みの時にfile()で全部取得しているんですがログが増えると負荷が大きくなりそうな気がするので。
0475nobodyさん
03/09/17 22:10ID:???DB使ってね!
0476nobodyさん
03/09/17 22:15ID:Rf3lCYFV0477nobodyさん
03/09/17 22:24ID:???ないですね!
逆に、なんでDB使うのいやなんですか?!
0479nobodyさん
03/09/17 22:55ID:???474が悩み事の矛盾に気がつかないからだよ!
0480nobodyさん
03/09/17 22:59ID:???2ちゃん程度の規模でもDBなぞ使ってないんだが。
ていうか、逆に2ちゃんをDBで書き直したらえらい事になると思うが・・・。
普通のBBSって書き込みはFIFOだし、読み出しはシリアルだから
逆にDB使うほうが負荷が大きくなる。
0481474
03/09/18 00:06ID:???DB使わずにfile()以外のやり方ないかと思ったんですが
0483nobodyさん
03/09/18 00:58ID:???0484nobodyさん
03/09/18 01:28ID:???0485483
03/09/18 07:46ID:???0486nobodyさん
03/09/18 09:35ID:???データ構造を固定長にしてバイナリファイルに格納しておき
fseek fread fwrite などを使えば部分処理が出来るから負荷は
減ると思うよ
0487nobodyさん
03/09/18 15:34ID:???えらく辛かったが、めちゃくちゃ速くなった。
0488nobodyさん
03/09/24 13:10ID:???具体的にどういったモジュールを消せば良いのだろう。
0489nobodyさん
03/09/24 13:16ID:???0490nobodyさん
03/09/24 13:56ID:???とりあえずスレ違いと思われ
スクリプト上で解決可能な話題が主題かと思う
0491nobodyさん
03/09/24 14:07ID:???0492nobodyさん
03/09/24 22:58ID:Fv8u9zA+http://click.dtiserv2.com/Click2/1-98-7254
0493nobodyさん
03/09/25 07:19ID:???0496nobodyさん
03/09/25 16:05ID:???できることだし、別問題じゃないか?
0497nobodyさん
03/09/25 17:02ID:???0498nobodyさん
03/09/25 18:44ID:???0499nobodyさん
03/09/26 05:39ID:???mod_mime_magic,mod_dir,mod_auth,mod_access,mod_cgi,mod_log_config,(mod_env)
(mod_perl)
0500500
03/09/26 12:46ID:???0501nobodyさん
03/09/28 01:16ID:Hg1oCkYhhttp://httpd.apache.org/docs/dso.html
0504nobodyさん
03/09/30 17:47ID:???0505nobodyさん
03/09/30 18:17ID:???0506nobodyさん
03/10/08 17:46ID:???0507nobodyさん
03/10/14 23:31ID:???0508nobodyさん
03/10/16 19:43ID:???0509nobodyさん
03/10/18 19:58ID:???あとは定数と直接数値を書き込むのはどっちが軽いのだろうか
0511nobodyさん
03/10/29 01:38ID:???0512nobodyさん
03/10/29 01:46ID:???0513nobodyさん
03/10/29 01:48ID:???0514nobodyさん
03/10/29 01:55ID:???Perlを始めよう、ならエディタから直接プロンプト起動できるし良い。
俺はtxt,HTML,Perl,PHP,SQL,C,Java,XMLなど全部ひとつのエディタで
やりたいからEmEditor3を使ってる。
0515511
03/10/29 13:34ID:???自分は
エディタ・・・秀丸
ブラウザ・・・アパッチ
0516nobodyさん
03/10/29 13:46ID:???エディタ:QX(慣れてる&コマンドラインに渡せるから)
サーバー:ANHTTPD(既に入れてたから)
なんだけど、やっぱ、アパッチの方がいいかね?
……スレ違いだけど、この話題続けていいもんかね。
0517nobodyさん
03/10/29 15:06ID:???エディタはPerlエディタスレ、サーバ話は何処が良いんだ。
無難に初心者質問スレでも薦めておくか。
ところでブラウザがアパッチって凄いな。
0519nobodyさん
03/10/29 16:31ID:t/aBtGdw0520nobodyさん
03/10/30 00:48ID:???0521nobodyさん
03/10/30 10:59ID:???エラーの内容を出力してくれるサーバーって無いの?
0524nobodyさん
03/10/30 13:34ID:???言語にもよるけど、rubyならこんなかんじで
begin
# 例外が発生する可能性がある処理
rescue 例外
puts "#{$!} (#{$!.type})"
puts [email protected]("\n")
end
perlはよく知らないけどこれでできるかな?
eval 'なんかの処理';
print $@ if($@);
0525nobodyさん
03/11/03 00:59ID:???0526nobodyさん
03/11/06 16:02ID:4b5YfiKA1. グローバル変数多し、my レキシカル変数使わず
2. 関数分割せず、ベタ書き
3. ヒアドキュメントを使わず、print '' の嵐
なものが多い。こんな手法が負荷軽減に貢献すんのか?
意見求む。
0527nobodyさん
03/11/06 16:18ID:???0529ぺるにゃん
03/11/06 22:21ID:???でも、HTML を軽くするために、すべての改行を取り払ってサイズを小さくしよう的な
アプローチですにゃ。そこまで必死な人は、すればいいにゃ。
0530nobodyさん
03/11/06 22:26ID:???0531nobodyさん
03/11/07 00:48ID:???0533nobodyさん
03/11/07 02:57ID:???0534ぺるにゃん
03/11/07 03:40ID:???print '<HTML>';
print .........
print '</HTML>';
ケース2:print 文いっかいだけ
print '<HTML>
.......
</HTML>';
ケース3:ヒアドキュメントで print 文いっかいだけ
print <<'END of HTML';
<HTML>
.........
</HTML>
END of HTML
こういうのを比べてるってこと?
0535ぺるにゃん
03/11/07 03:43ID:???ケース2とケース3は、(ヒアドキュメントの末尾の改行を除けば)等価でしょ?
じゃなかったら首つるです。
違いが出てくるとすれば、パース・・構文解析にかかる時間。
それも有意差は出ないでしょう。
異論ありますかにゃ?
0536nobodyさん
03/11/07 05:18ID:???0538nobodyさん
03/11/07 07:00ID:H74hevQpへー結構差があるんだね。
0539( _。。)_ バタ。 ◆eJlUd9keO2
03/11/07 09:15ID:???…測定はやはり浮動小数点か何かでやったらいいのだろうか。
0540( _。。)_ バタ。 ◆eJlUd9keO2
03/11/07 14:43ID:???(´・ω・`)ケイゲンサレタノカ、ヨクワカンナカッタ。
0542nobodyさん
03/11/07 21:04ID:???http://turck-mmcache.sourceforge.net/
能書きのとおりなら「最速」だそうだが。
0543( _。。)_ バタ。 ◆eJlUd9keO2
03/11/08 16:35ID:???全然実感できない つдT)
0544nobodyさん
03/11/11 02:37ID:???my 変数の方が速いの?
速度とか関係無しにstrict通るようにした方が良いだろうって話は置いといて。
0545nobodyさん
03/11/11 03:02ID:???シンボルテーブルに登録されないし
■ このスレッドは過去ログ倉庫に格納されています