X



★負荷軽減対策委員会(Perl、PHP)★
0277山崎渉
垢版 |
03/04/20 06:23ID:???
   ∧_∧
  (  ^^ )< ぬるぽ(^^)
0278nobodyさん
垢版 |
03/04/23 00:06ID:eNBdthfp
あのー、
Perlで、myやlocalをほとんど使っていないってのは、
どのくらいの負荷要因でしょうか?ベスト1?
0280nobodyさん
垢版 |
03/04/23 00:32ID:???
>>278
それで変数のコピーを抑えれば効率的と言えるかも。
0281nobodyさん
垢版 |
03/04/23 12:57ID:???
>>278
perlの実行ファイルで既に1M近くあるし、モジュールとか読んだら、
もっと増える。
気にするやつは馬鹿。自己満足。知症。
たとえれば、ボルトを全部チタンにして100gの軽量化に成功!とか言ってる
車オタと同類。
0282nobodyさん
垢版 |
03/04/24 01:07ID:Dv9rntoL
このスレ的な話題をあつかった本って、あります?
0283nobodyさん
垢版 |
03/04/24 01:31ID:Dv9rntoL
プログラムとデザインをわけようとして、
テンプレート読み込み型のデザインをしていたんだけど、
そのせいなのかなー、急に重くなった気がする
0284nobodyさん
垢版 |
03/04/24 12:43ID:UND9RBAr
>>283
データ更新の機会がそれほど発生しないものならば、動的にHTMLを生成する
のではなく、データ更新時、静的HTMLを随時生成するのに切り替えるのも一つの
手かと。
0288nobodyさん
垢版 |
03/04/27 23:41ID:???
>287 phpに速さを求めちゃイカン。
0291nobodyさん
垢版 |
03/04/30 00:11ID:7aND3iYJ
Perlで3MくらいのCSVを読み書きするのって、
かなりの負荷?

あと、ここのみなさんは、どうして負荷について知識があるんでしょうか?
経験上?
0292nobodyさん
垢版 |
03/04/30 00:21ID:???
>>291
一回しかやらないのなら
大した負荷にならないが
BBSのログとかだったら負担になるかもね
0293nobodyさん
垢版 |
03/05/02 05:14ID:Faf7JYi+
オブジェクト指向のプログラムは負荷軽減になるの?
0296nobodyさん
垢版 |
03/05/02 11:29ID:???
>>288
そうそう。よほど非常識なことをしなければ、スクリプト言語で効率を考えるのはナンセンス。
0298nobodyさん
垢版 |
03/05/04 07:37ID:???
>>297
そうだね。コードの一つ一つで効率を考えることによって、
全体としてそうとうの負荷軽減になる。例えば、
http://www.mikeneko.ne.jp/~lab/perl/numerical_transform/#h4を
ベンチマークで検索してみれ。
0299nobodyさん
垢版 |
03/05/05 23:05ID:I0Mrp3iS
>>292
そうかー、ちょっと反省。

ところでどなたか、↓の質問答えてほしいです。。。

>あと、ここのみなさんは、どうして負荷について知識があるんでしょうか?
>経験上?

あと、負荷軽減について詳しい本(の一部とか雑誌でも)ないでしょうか?
0301nobodyさん
垢版 |
03/05/07 15:10ID:???
負荷がどうとかと言う人ほど、use strictしたままリリースしそう。
0302nobodyさん
垢版 |
03/05/09 00:10ID:???
use strict すると負荷がかかるんですか?
0303nobodyさん
垢版 |
03/05/09 15:22ID:???
>>302
検査する時間が増えるだろ、アクセスごとに検査させるのか。
0304nobodyさん
垢版 |
03/05/11 11:49ID:???
Cでいえばassert有効にしたままリリースってのに似ているな。
わざとそうしている人もいるみたいだけど・・・
0305nobodyさん
垢版 |
03/05/15 03:27ID:zbSE5/sG
負荷を測るのってどうすればいいの。
自分のPCで動かしてもよーわからん。
0307nobodyさん
垢版 |
03/05/19 07:37ID:9ehzYSkO
メモリについて質問させて下さい。
例えば
$x="abc";
の後、
$x="";
という記述なしに
$x="def";
とした場合、メモリは、
abcの○○○分と、defの○○○分の
○○○○○○分が確保されてしまいますか?

$x="abc";
$x="";
$x="def";
にすれば
メモリ確保は○○○だけになると思うのですが。
0308nobodyさん
垢版 |
03/05/19 07:48ID:???
>>307
たぶん・・・
変数へ上書きしたら、ちゃんと初期化(開放)してから、
代入してくれると思ふ。
0309nobodyさん
垢版 |
03/05/19 08:57ID:9ehzYSkO
>>308
そうですか。
では$x="";は無駄ですね。
ありがとうございます。
0310nobodyさん
垢版 |
03/05/19 09:06ID:???
Perlは最初に確保したメモリ空間を開放しません。
たとえ、ゼロに初期化しても。undefなら別。
http://www.mikeneko.ne.jp/~lab/perl/tuning/
0314nobodyさん
垢版 |
03/05/19 15:55ID:wUacqRGd
>>310
何が言いたいのかわからん。
0315nobodyさん
垢版 |
03/05/19 16:11ID:wUacqRGd
>>310
すんまそん。
メモリ確保を解放するかしないかは分かります。
メモリ確保は○○○分で済むのか、○○○○○○分確保してしまうのかを聞きたいのです。
0318nobodyさん
垢版 |
03/05/19 17:41ID:???
詳しく知りたかったら、Perlのソースを読むしかないと思うけど。
0319nobodyさん
垢版 |
03/05/20 01:00ID:???
>>315
>>310 の記述を見ると、3バイト分しか確保しないように思えたけども。
0320nobodyさん
垢版 |
03/05/21 00:27ID:???
apacheのログ2,3日分。約4M。PHP。極貧マシン。
while & fgets & copy -> 処理50秒前後 メモリ使用4M前後 CPU100%
file & foreach(or list&each) & copy -> 処理60秒前後 メモリ使用15M前後 CPU100%
fread & copy -> 処理0.5秒前後 メモリ使用4M前後 CMP100%
0322山崎渉
垢版 |
03/05/22 02:00ID:???
━―━―━―━―━―━―━―━―━[JR山崎駅(^^)]━―━―━―━―━―━―━―━―━―
0323nobodyさん
垢版 |
03/05/22 15:08ID:???
ったく、山崎のおかげでスレ順めちゃくちゃだ。
0324nobodyさん
垢版 |
03/05/26 07:37ID:Hdu0vyT1
ファイルをコピーする時って

open(IN,"Src.txt"); #コピー元ファイル Src.txt をオープン
while(<IN>){    # 一行毎の読み込みループで変数$Bufに読み込む
 $Buf .= $_;}
close(IN);     #ハンドル IN が不要になったので閉じる

◇デソースに書き出す
open(OUT,"> Dst.txt"); #コピー先ファイル Dst.txt をオープン
print OUT,$Buf;     #ソースの内容($Buf)を書き出す
close(OUT);       

のように一行ずつ読み込んでく場合と
@line=<IN>;
みたいにいっきに配列に入れてしまうのはどちらが処理としてはいいのでしょうか?
0325nobodyさん
垢版 |
03/05/26 08:20ID:???
>>324
open IN, '<' . $src or die;
open OUT, '>' . $dst or die;
my $buffer_size = 1024; # 適宜調整
my $buffer;
print OUT $buffer while read IN, $buffer, $buffer_size;
close OUT;
close IN;
0326nobodyさん
垢版 |
03/05/26 08:36ID:Hdu0vyT1
>>325さん
それが最適なのですか。
勉強になります…。
サイズ1024は何を意味しているのだろう…
0328nobodyさん
垢版 |
03/05/26 11:18ID:???
>>326
1024 byte は 1 kbyte だろ?
コンピュータの基礎じゃねえか。

ま、俺だったらFile::Copyモジュールを使うかも。
バグがあるかも知れないソース書くより楽だし。
0329326
垢版 |
03/05/26 14:05ID:mARvDo9Y
my $buffer_size = 1024; # 適宜調整
すいません。
これを記述することで何が得なのかを知りたいのでした。
0330nobodyさん
垢版 |
03/05/26 14:38ID:kKbCXT+N
>>329
実行エンジンにもよるんだけども、メモリを確保する場合、8byte単位とかそういうのが多いから
(アライメント)。
Perlだとどうだか?って気もするけども。
0332nobodyさん
垢版 |
03/05/26 18:41ID:???
>>329
微妙に意味がわからんな……
推測をして回答してみる。
1.$buffer_sizeを設定することで、何バイトずつコピーするのかの設定が可能になる。
この数値を小さくすると、コピー回数が増えるが、メモリーへの負担は減る。
この数値を逆にすると、その逆。
サーバーの具合を見て適宜調整することができる。
2.わざわざ変数を一つ設定することの意味は、変数の名前をわかりやすくすることで、
その変数が何に使われているのかをわかりやすくする。
「昨日の自分は他人」の言葉どおり、後から見た時になんでその数値にしたのか等が判断しやすくなる。

何が聞きたいんだろう……
0333nobodyさん
垢版 |
03/05/26 21:27ID:???
3. 設定(定数)と実働部分はできるだけ分離する。
>>324のコード片がスクリプトのどこに埋もれていても、
変数 $buffer_size としてスクリプトの頭の方で定義しておけば
簡単にバッファサイズを変更できる。定数で埋め込んでしまうと
変更したい時にいちいち探し回る事になる。
0335nobodyさん
垢版 |
03/05/26 21:32ID:kKbCXT+N
Perlは最適化とかしないのかな?
@buf = <IN>
のほうが早かったりして。
0336nobodyさん
垢版 |
03/05/26 21:50ID:67MeoiMR
open(IN, $src);
open(OUT, '>'.$dst);
print OUT while(<IN>);
close(IN);
close(OUT);

こう書くかも。
readで読み出すバイト数は多い方が速いと思う。当然だけど。
ただ多過ぎるとそれはそれでメモリくったり。
0337nobodyさん
垢版 |
03/05/26 22:07ID:???
>>335-336
ベンチ取れば分かる事だが、@buf = <IN> はメモリを一気に
確保する = System CPU time を食う。行入力演算子による
取得は「行末」を探す = 可変長入力なので潜在的に read
より遅い処理。もちろん扱うデータのフォーマット & 量次第
だけどね。

どうしても行入力演算子でやりたければ
$/ = \1024;
while (<IN>) { ... }
で 1024 byte 単位で読めるけど、素直に read 使った方が
速かったかと。
0338336
垢版 |
03/05/27 01:07ID:???
たしかにそうですね。
改行コードを探しながら進むので遅いと。
0339山崎渉
垢版 |
03/05/28 17:05ID:???
     ∧_∧
ピュ.ー (  ^^ ) <これからも僕を応援して下さいね(^^)。
  =〔~∪ ̄ ̄〕
  = ◎――◎                      山崎渉
0341nobodyさん
垢版 |
03/05/28 23:45ID:01rk8ElD
ファイルの書き込みを追記にしたばあいの負荷ってどうなるんですか。
たとえば書き込むものは同じとして、
追記先のファイルが1行のときと1000行のときでは
CPUメモリ負荷はどうなるんでしょう。
追加するだけだから大して変わらないかなと思ったんですけど。
0343
垢版 |
03/05/29 00:29ID:KW4sDDhu
$kazu=(((($my_tech-int(rand($my_tech/4)))*$job_dmg[$job])*$tarou)/$mstamina)*$stamina;
このように一気に計算させるのと、
いくつもに分けて計算させていくのでは
負荷は変わるのでしょうかね?
変わるのならどちらが軽いと思いますか?
0344nobodyさん
垢版 |
03/05/29 00:52ID:???
>>341
追記の場合、元のファイルの大きさはほぼ影響しない。
Cをやっている人間ならわかる(はず)だが、
追記と言うのは、ハードディスク上のファイルの終端を探し出して、
そこから新たなデータを埋めて行き、最後にファイルの大きさを示す数値を変更する作業だ。
従って、ファイルの終端を探し出す作業だけが、ベンチマークに影響する。
0345nobodyさん
垢版 |
03/05/29 00:54ID:???
>>343
メモリの占有率を調べたいなら、そういうソフト入れてベンチマーク取ればわかる。
そして結果を発表すると皆から感謝される。

むしろ、その式は人間が見やすいかどうかを考慮した方がいいと思う。
0346nobodyさん
垢版 |
03/06/01 05:17ID:q1DFdt/M
下記の中で最も負荷が少ないのはどれでしょうか?

1.printを使い一行ずつ出力
2.ヒアドキュメントで出力
3.別ファイルを作り読み取らせて出力

3は後々便利そうだけど、負荷が気になる…。
0348nobodyさん
垢版 |
03/06/01 10:16ID:???
>>346
負荷が少ないって、どっちの?

「省メモリ」? それとも「CPU占有の少なさ」?
0349nobodyさん
垢版 |
03/06/01 11:08ID:???
>>346
>3.別ファイルを作り読み取らせて出力
>3は後々便利そうだけど、負荷が気になる…。

じゃあ外部ライブラリとかあまり使わない方がいいよ。CPANもね。
0350nobodyさん
垢版 |
03/06/01 12:28ID:???
>>346
1.出力処理が遅い。
2.出力処理は早い。
3.良識ある人間のやること。

一般に、メモリ占有量の低いものの方がウェブには向いているよ。
0351nobodyさん
垢版 |
03/06/01 13:28ID:???
>>350
そうか?次々とくる要求に迅速に対応するために処理速度を優先しない?
0352nobodyさん
垢版 |
03/06/01 14:21ID:???
webプログラムは、サーバへの負荷も気をつけないといけないと思うけど、
それよりも、トラフィックを一番に考えてる俺は間違ってますか?
0353nobodyさん
垢版 |
03/06/01 16:03ID:j4GGBbHW
>>347-351
どうもです。
0354nobodyさん
垢版 |
03/06/01 16:59ID:???
そんな細かい事ぐらいでサーバーから言われる事はまず無いので
私も処理速度を優先させるべきだと思うねぇ。
というか、気にするほど大して変わらない。
基地外なほど膨大なデータを扱うならまだしも。
0355nobodyさん
垢版 |
03/06/01 23:12ID:???
想定同時アクセス1000くらいの小さな案件で、
鯖を用意してやるなら、保守性を一番においても問題ないと思う。
0356nobodyさん
垢版 |
03/06/01 23:24ID:8+Lq3hlg
>>355
>想定同時アクセス1000
これって小さいの? 秒間同時アクセス数1000ってことだよね?
0357nobodyさん
垢版 |
03/06/02 02:48ID:???
共有メモリを活用する、繰り返し使用する正規表現はlexで、
大きなプロセスは常駐させてローカルソケットでCGIと通信してCGIは小さく作る、
データベースは下手に使わない、巧く使える場合にだけ使用する。
0358nobodyさん
垢版 |
03/06/03 01:39ID:???
>>354
サーバーがつんでるメモリーの量によってどっち優先かは変わると思われ。
メモリー使い切ったらswapのオーバーヘッドがかかってかえって遅くなるし。
まあ、最近のサーバーはメモリーを湯水のように持っているからそんなこと考える必要ないのかな?
0359nobodyさん
垢版 |
03/06/03 05:54ID:+XIKXuw2
Perl5からPerlでもコンパイルした状態で設置できるようになったと読んだんですがどうすればできますか?
0360nobodyさん
垢版 |
03/06/03 08:09ID:???
>>359
perlccを使う。
使ってどの程度早くなるかは知らんけれどね。
0361nobodyさん
垢版 |
03/06/03 12:08ID:Sjj3JYUN
>>358
共有鯖ならいくらメモリ積んでいようと割り当てられるのは
微々たるもの
0362nobodyさん
垢版 |
03/06/03 21:29ID:???
>>360
散々言われてていることだが、perlccではモジュールはろくすっぽ使えないので注意。
0363nobodyさん
垢版 |
03/06/03 21:58ID:+XIKXuw2
>>360
早速やってみたところかなり速くなりました。
でもサイズが2kちょいから800kほどに...
0364nobodyさん
垢版 |
03/06/03 22:22ID:???
>>363
perlcc使ったことあるけど、2kじゃなくて2MBになったよ
0365364
垢版 |
03/06/03 22:22ID:???
スマソ
0366nobodyさん
垢版 |
03/06/05 20:39ID:???
mod_perlだと数倍早くなるのに
perlcc だと1割くらいじゃない?
0368nobodyさん
垢版 |
03/06/20 01:47ID:???
ダブルクオートを極力使わないだけで結構速くなるらしい。
理由は説明しなくてもわかるよね?
0369nobodyさん
垢版 |
03/06/20 22:16ID:???
>>368
'"'でくくると中に'$'が入っているかを検査してるから?
0372
垢版 |
03/06/24 08:22ID:???
>>371
Yes she does!

PHP のメーリングリストなんかでも、
速度を少しでも稼ぎたいときの小技として紹介されることがあるね。
0373nobodyさん
垢版 |
03/06/25 18:56ID:???
すべてのルーチンを一つのファイルにまとめてしまうのより、
ひとつひとつルーチン毎にファイルを分けて、
一度に呼び出す方が負荷が大きいですか?
0374nobodyさん
垢版 |
03/06/25 22:26ID:???
>373
漏れもそれ思うんだが、ファイルをまとめようが分割しようが、
結局たいした大きさじゃないので、どっちもオンメモリってことない?
0375nobodyさん
垢版 |
03/06/25 23:20ID:???
使わないコードを解釈させない為に分割するんであって、
分割しても常に全部使うのなら、まとめた方がシステムコールが
減っていいと思う。

Perl だったら CGI.pm でやってる遅延読込が参考になるかと。
あれはあれでメモリ食いそうだけど。
0376nobodyさん
垢版 |
03/06/26 03:31ID:???
>>375
それじゃ、useでモジュール呼び出すより、
requireで、必要な所で呼び出す方が良いって事ですね。
0378nobodyさん
垢版 |
03/06/26 03:55ID:???
>>376
別に必要になったところでuseすればいいんでないかい?
そうそう、SelfLoaderかまして起動時には一部しか読み込まれないように工夫しないといかんね。
0381nobodyさん
垢版 |
03/06/26 13:46ID:???
requireはそこに来た時点で読み込まれる。
function hoge() {
require('hoge.php');
}
hoge(); らなければ読まない。
Perlも同じく。
0382nobodyさん
垢版 |
03/06/27 16:09ID:sG/tHFOo
コメントを山ほど書いたら負荷になります?
スクリプト自体軽くした方がいいんでしょうか。
0383nobodyさん
垢版 |
03/06/27 16:19ID:???
>>382
富士山ほどのコメントを書いたら負荷になります。
0384nobodyさん
垢版 |
03/06/27 16:25ID:???
>>382
わかるほどの差は出ないからちゃんと書いといたほうがいいよ
0387nobodyさん
垢版 |
03/06/28 00:19ID:???
>>386
体感できるほどの差ではない、つまり実質0
0388nobodyさん
垢版 |
03/06/28 14:07ID:M/F9ZoCi
>>387
でも少しは…。

↓以下ループ。
0389nobodyさん
垢版 |
03/06/28 14:11ID:jkMqlRkL
>>388
ってことは、少しは変わるんだ…。
0391nobodyさん
垢版 |
03/06/28 16:21ID:???
速度と分かりやすさのトレードオフ
0393nobodyさん
垢版 |
03/06/29 00:15ID:???
正直言って、コメントなんか処理速度に関係なんかない。
そりゃ、数百Mとかのコメントとか入れてたら、
メモリへロードするのが遅くなるだろうが、
処理速度そのものは、何の影響もない。
0394nobodyさん
垢版 |
03/06/29 08:04ID:???
え????
コンパイル時に無視されて、コンパイル結果もキャッシュされる
わけなんだから、全く影響しないんじゃ?
0395nobodyさん
垢版 |
03/06/29 13:20ID:???
>>394
コンパイル結果に反映されないのは当たり前
コンパイル時に無視するためには最低限の判定が必要
要はコメントかどうか判定するフラグが少ないに越したことがないのか
という話でしょ
0396nobodyさん
垢版 |
03/06/29 22:00ID:???
CgiPerl , CgiPHP , mod_php のうち速度が一番なのはmod_phpなのは知ってるけど
負荷が掛からないのはどれ?
0398nobodyさん
垢版 |
03/07/01 16:46ID:67Ffrssk
printで一行づつ出力するか、
変数にデータを入れて、printで一気に出力するかどちらが負荷少ない?
それともヒアドキュメント使うか。

どれよ?
0399nobodyさん
垢版 |
03/07/01 19:31ID:???
mod_perlは一般的じゃないよ。
0400nobodyさん
垢版 |
03/07/01 19:43ID:???
薬物使ったベンジョンソンみたいなもん?
0402nobodyさん
垢版 |
03/07/01 20:04ID:3/m58fAf
>>398

そうそう、オレも知りたい。結構悩むんだよなー。みんな
その辺の使い分けはどうしてるの?

printよりechoのが速いってのは聞いた事あるけどね。
0403nobodyさん
垢版 |
03/07/01 20:06ID:???
とりあえずバッファリングなしは効率が悪い。
0404403
垢版 |
03/07/01 20:14ID:???
そういえばPerlにCのfflushのような関数はないのかな?
$|=1;print "";$|=0;とやるしかない?
0405nobodyさん
垢版 |
03/07/01 22:48ID:???
>>398
変数作って一気に出力する。
エンコード自由に変換して掃き出せるようなものの場合はどうしてもこうなる。

ヒアドキュメントは
$aya=<<EOL;
あやや
あひゃひゃ
EOL

で変数ぶち込めるし。
0407nobodyさん
垢版 |
03/07/02 00:38ID:???
echo "
うほっ
いい男!
";

これでいいだろ
0408nobodyさん
垢版 |
03/07/02 08:14ID:???
>>399
mod_phpも同じだ。
>>401
速度は、
mod_perl > mod_php > CGI Perl > CGI php
の順。ちゃんと実験したサイト行って、見て来い。
0409404NOTFOUND
垢版 |
03/07/02 20:09ID:???
>>408
>mod_phpも同じだ。

PHP可を謳っている鯖屋はmod_php可という意味で、CGI可(※)を謳っている鯖屋は、
CGI/Perl可という意味で謳っていると思うのだがどうだろうか?

CGI可に比べてPHP可の鯖屋が少ないのは事実だが、mod_Perlを使える
鯖屋を見た事がないのは、漏れの調べ方が甘いからなのか・・・

※)一般的にCGI=Perlという認識があるのでこのような書き方をあえてしたが・・・

つまり何が言いたいかと言うと、mod_php使える鯖がそんなに非一般的では
ないんではないかという事だ。
0410nobodyさん
垢版 |
03/07/02 21:32ID:???
mod_php っていう言い方、あんまきかないんだけど、
cgi版じゃない普通(というか一般的というか)のphpってこと?
0411nobodyさん
垢版 |
03/07/02 21:52ID:???
>>409
適当な拡張子をApache::Registry上で
動くようにする事自体はむずかしくないんだけど
ユーザーのモジュールの名前空間に制限がかけれないので
userAが
use lib (/home/userA/lib/);
use myPackage;
としる状態で
userBが
use lib (/home/userB/lib/);
use myPackage;
とかしてくれちゃうと、動作がめちゃくちゃになってしまうので
ユーザーにmod_perlな環境を提供できません(´Д`;)

>>410
mod_phpでない場合(サーバー組み込みで無い場合)
「php対応(ただしコマンドライン版)」という表記をみかけます
0412nobodyさん
垢版 |
03/07/02 22:52ID:???
>>411
レン鯖(共有鯖)ではmod_perlを提供できないって事?
って事は一般的な環境ではPHP>perlつー事?
0413410
垢版 |
03/07/02 23:27ID:???
>>411
なるほど。さんくすです
0414nobodyさん
垢版 |
03/07/03 09:14ID:???
でもな、Perlには、FastCGIとかもあるからな。
0415
垢版 |
03/07/04 19:40ID:???
>ちゃんと実験したサイト行って、見て来い。

ああいう非現実的な試行環境に統一して対照されても参考にできないよね、、
まだmsがやったベンチ結果のほうがdqnぽくない
PHP5のケース別ベンチやってくれんかな
個人では実験環境が作れないしzendの情報だけでは激しく不安だし、、

話は変わって、itboostのtips「効率的な処理」に、phpのループ構造は遅いから、
コールバック関数を繰り返し呼び出すとphpではなくcレベルでループが走ってくれるて
いいよってネタがあるけど、これはどうなん?
(あれはcountを一度にすれば大差ないような気もしつつ、、。
個人で実行速度を計測するといえば、ループ処理のことだと言ってもいいかと
おもうんだけど、これってphp特有の問題?
0416411
垢版 |
03/07/06 09:05ID:???
>>412
ハンドラ好きにさせるのはもってのほかなので
Apache::RegistryかApache::PerlRunを提供するしかないと
おもうのですが、前述の問題があり、自分の知識内では
不可能と判断しています。
(他に良い方法がないか探してるのですが...)

>>414
FastCGIも、共有サーバだとデーモンプロセス上がりまくりで
現実的では無いような気がしますが^^;

0417nobodyさん
垢版 |
03/07/06 09:07ID:???
>>ちゃんと実験したサイト行って、見て来い。
>ああいう非現実的な試行環境に統一して対照されても参考にできないよね、、
どこのサイトを見てるんですか?

0420
垢版 |
03/07/06 23:45ID:???
>417
そのへんはコミュニケーションギャップを楽しむところだと思ったり。
0422山崎 渉
垢版 |
03/07/15 11:10ID:???

 __∧_∧_
 |(  ^^ )| <寝るぽ(^^)
 |\⌒⌒⌒\
 \ |⌒⌒⌒~|         山崎渉
   ~ ̄ ̄ ̄ ̄
0425nobodyさん
垢版 |
03/07/26 17:01ID:???
ageんでも保守はできるでしょ

?>
<html><head><title><?=$title=></title></head>
<?php



echo << end
<html><head><title>$title</title></head>
end;

はどっちが軽いんだろうね・・・
0426nobodyさん
垢版 |
03/07/26 17:02ID:???
あぁ、 < がひとつ足りないし・・・
0427nobodyさん
垢版 |
03/07/27 01:37ID:???
このスレいつも大変参考にさせていただいています。
0429nobodyさん
垢版 |
03/07/27 10:38ID:???
>>428
私もそんな気がして、なるべく上の方使うようにしてる
でも変数が多いところとかは下のやつ使ってる
0430nobodyさん
垢版 |
03/07/28 05:31ID:???
PHPに、テキスト中に変数があるかどうか判断させる後者よりも、
明示的にする前者がやっぱ速いかな?特に変数が多いほど。

でも、PHPモードに入ったり抜けたりする負荷(と言えるかな?)を考えると前者のような気もする…
0431nobodyさん
垢版 |
03/07/28 11:41ID:???
echo '
<html><head><title>'.$title.'</title></head>
';

これでいいべ
0432nobodyさん
垢版 |
03/07/28 16:40ID:???
>>431
長い場合、echoを大量に書くわけにもいかんでしょ
HTMLのフッタ部分は定型に近いから?><?phpを使ってるんだけど
さほど変わらないのかなぁ・・・
0434山崎 渉
垢版 |
03/08/02 02:24ID:???
   ∧_∧
  (  ^^ )< ぬるぽ(^^)
0435ぼるじょあ ◆ySd1dMH5Gk
垢版 |
03/08/02 04:52ID:???
     ∧_∧  ∧_∧
ピュ.ー (  ・3・) (  ^^ ) <これからも僕たちを応援して下さいね(^^)。
  =〔~∪ ̄ ̄ ̄∪ ̄ ̄〕
  = ◎――――――◎                      山崎渉&ぼるじょあ
0436nobodyさん
垢版 |
03/08/08 18:33ID:???
mod_perlで動かすと、速いときはバカみたいに速いが、
遅いときはイライラするぐらい遅い。

普通こんなにバラツキがあるものなのですか?
0438nobodyさん
垢版 |
03/08/15 12:34ID:???
>>436
新しいhttpdの子プロセス上がった時とかキャッシュがないからでは?
重そうなモジュールは起動時に読み込むようにするとかして
コンパイル時間短くしたら?

0439nobodyさん
垢版 |
03/08/20 12:11ID:???
speedyCGIで負荷が高くなると、InternalServerErrorが出るのですけど、
私の書き方が間違っているだけなんですかね?
0440nobodyさん
垢版 |
03/08/20 12:21ID:???
>438
mod_perl1.2使ってたとき、モジュールのキャッシュ無視して、別空間にロードされる場合も。
最近のバージョンで改善されているかどうかは不明ですが。
0441nobodyさん
垢版 |
03/08/20 14:50ID:???
>>440
モジュールの更新日が変わってるとか%INC消してるとかでなく?
どうやってその現象確認しました?
0442440
垢版 |
03/08/21 18:44ID:???
>>441
初回にロードした時間を記録するクラス作って、何度かリロードして確かめた記憶が。
他にも、子プロセス関係で何かしたと思ったけど、忘れた。
%INC消さなくても、ロードされる時はされてましたよ。
ライブラリモジュールに限らず、同一ファイル、同一パッケージ名の空間も
複数のキャッシュが存在してしまうこともしばしば。
それ知って以来、mod_perlは一切使ってませんが。

で、最近のバージョンはどうなんでしょう?
0443nobodyさん
垢版 |
03/08/22 04:06ID:???
>>442
webDBで、mod_perlを導入したが、遅い。
まだSpeedyCGIの方がパフォーマンスが良い。

ただ、>>439 の言う通り負荷が高くなると不安定なんだよなぁ。
なんか回避方があったら、教えて欲しいよ。
0444nobodyさん
垢版 |
03/08/22 13:11ID:???
>>443
私もWebとPostgresqlで組んでいるのですが、
mod_perlだと、速度のバラツキが尋常でなくて採用を辞めましたよ。
SpeedyCGIが安定さえしてくれれば、何も心配ないのですけどね。
0445nobodyさん
垢版 |
03/08/22 15:05ID:qLHm82v9
PHP使えよ。。
0446nobodyさん
垢版 |
03/08/22 16:34ID:???
>>444
DBI.pm使ってるからじゃないの?
それはmod_perlのせいじゃないような気が。
0449nobodyさん
垢版 |
03/08/22 23:56ID:???
>>447
>>446じゃないが、DBIは遅い気がする。

あとDBIじゃなかったかな?サーバー名にIPアドレスじゃなくて
FQDN指定するとident投げるのって。
identが繋がらないとタイムアウトするまで固まるんだよな。
0450nobodyさん
垢版 |
03/08/23 00:30ID:???
そういえば、PostgreSQLの日本語サイト見てたら、以外にも
Perl/CGIで利用しているところが多いのにビビりました。
DBMS使う以上、何らかの効率性を望んでいるのだと思うけど、何故Perl/CGIなんだと問いつめたいよ。
0451nobodyさん
垢版 |
03/08/23 00:44ID:12CD5sBt
>>450
逆に、Perl/CGIだと何がだめなのか説明してみてください。
0453nobodyさん
垢版 |
03/08/23 09:33ID:???
>>450
漏れはMysq;でPerl/CGIしてるけど、移植元がperlだったから単純に鯖の負荷軽減が目的だったりしたが・・・
それに、Phpだと複雑なソース書ききれんかったろうってのもあるわけだが、お前さんはなにでやれと?
0455nobodyさん
垢版 |
03/08/23 16:29ID:IynKNpCX
perlなんだが。
ある位置から数行くらい読み込む時、
10kbくらいのファイルと、300kbくらい(要するにでかい)ファイルでは
負荷に違いってあります?

open IN, ...;
for($i=0; $i<10; $i++){
$line = <IN>;
...処理
}
close IN;

みたいなプログラムでつ。
0456nobodyさん
垢版 |
03/08/23 16:46ID:???
>>455
どうやって「ある位置」までファイルポインタを移動させるかに依る。
行単位で空読みさせて移動するよりは seek 一発の方が速い。
その例だとファイルの先頭からだから変わらん。
0457nobodyさん
垢版 |
03/08/23 19:02ID:V3x8NgSH
>>453
Perlで書けてPHPで書けない「複雑ソース」って何?
0459nobodyさん
垢版 |
03/08/23 19:20ID:???
>>457
最近あまり追ってないんだが、
PHPってtermiosによる端末制御できたっけ?
fork()は出来るけどpipe()は出来たっけ?

あと、PHPはスコープが滅茶苦茶だから(まぁPerlも変だけど)
あまり大きいソースを多人数で書くのには向いてないと思う。
0460455
垢版 |
03/08/24 10:10ID:XoFfp7Kp
>>456 サンクス
1行の文字数が不定なんでseekで飛ぶことが難しいんす。
2chログのように301-400だけ表示みたいな場合は
やっぱ空読みしてるんかな。
0462455
垢版 |
03/08/25 11:33ID:???
でもどうやってx行目を見つけ出すの?
適当にread系のcgiを漁ってみたけど、やっぱ空読みしてるみたいだわ。
0463nobodyさん
垢版 |
03/08/25 12:48ID:???
>>462
1000行程度なら空読みでいいと思う。
万単位になったら、インデックスと作るとか対策考えろ。
0464nobodyさん
垢版 |
03/08/25 13:26ID:???
>>462
1、行ごとのファイルポインタを記録してある。
2、一定件数ごとに、ファイルポインタを記録してある。
3、2chは入力値の長さが決まっているから、固定長フォーマットにしてある。

これだけのアクセス数があるところで、空読みは考えにくいな。
板のトップで、数千行単位で空読みされるのですか?
0465nobodyさん
垢版 |
03/08/25 14:55ID:JfnblB1o
>>464
今は知らないけど、今までの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:???
useって宣言した場所によって読み込まれる時期が違うの?
それならJcodeなんかは先頭でuseせずに
送られてきたデータのチェック済ませてから読み込ませた方が良いのかな。
#チェックにJcode使うなら別だけど
0470nobodyさん
垢版 |
03/09/05 00:46ID:???
SpeedyCGIでどうやったら、負荷が高いときのエラーが無くなるんだろう。
もう訳がわからん。
0472nobodyさん
垢版 |
03/09/06 18:14ID:???
>>471
負荷を軽減させるために、>>470がspeedyCGIを入れたんだろ。
ここは、負荷軽減の為のスレだよ。
0474nobodyさん
垢版 |
03/09/17 21:25ID:Rf3lCYFV
PHPの掲示板なんですができるだけ負荷がかからないログの読み込み方法ってどんなのがありますか?
今は書き込みや読み込みの時にfile()で全部取得しているんですがログが増えると負荷が大きくなりそうな気がするので。
0476nobodyさん
垢版 |
03/09/17 22:15ID:Rf3lCYFV
DB使う以外にうまいやり方無いですか?
0477nobodyさん
垢版 |
03/09/17 22:24ID:???
>476
ないですね!
逆に、なんでDB使うのいやなんですか?!
0479nobodyさん
垢版 |
03/09/17 22:55ID:???
>478
474が悩み事の矛盾に気がつかないからだよ!
0480nobodyさん
垢版 |
03/09/17 22:59ID:???
>>477
2ちゃん程度の規模でもDBなぞ使ってないんだが。
ていうか、逆に2ちゃんをDBで書き直したらえらい事になると思うが・・・。

普通のBBSって書き込みはFIFOだし、読み出しはシリアルだから
逆にDB使うほうが負荷が大きくなる。
0481474
垢版 |
03/09/18 00:06ID:???
DB使うのが嫌っていうか使ったことないので
DB使わずにfile()以外のやり方ないかと思ったんですが
0482
垢版 |
03/09/18 00:52ID:???
>481
スレ読めよ。
0485483
垢版 |
03/09/18 07:46ID:???
「スレ読めよ」か。「スレタイ読めよ」と勘違いした。
0486nobodyさん
垢版 |
03/09/18 09:35ID:???
>474

データ構造を固定長にしてバイナリファイルに格納しておき
fseek fread fwrite などを使えば部分処理が出来るから負荷は
減ると思うよ
0487nobodyさん
垢版 |
03/09/18 15:34ID:???
SpeedyCGIでエラーが頻発したので、PerlからCに移植した。
えらく辛かったが、めちゃくちゃ速くなった。
0488nobodyさん
垢版 |
03/09/24 13:10ID:???
apacheの軽量化が威力あると言うが、
具体的にどういったモジュールを消せば良いのだろう。
0490nobodyさん
垢版 |
03/09/24 13:56ID:???
>488

とりあえずスレ違いと思われ

スクリプト上で解決可能な話題が主題かと思う
0493nobodyさん
垢版 |
03/09/25 07:19ID:???
人よりちょっと知識の多い香具師が少ない香具師を馬鹿にするスレはここですね。
0494nobodyさん
垢版 |
03/09/25 10:11ID:???
>>490
apacheもスクリプトも両方チューニングして、
「負荷軽減対策委員会」と呼べるような気がするのだが…
0495nobodyさん
垢版 |
03/09/25 10:39ID:???
>>1を見る限りそうとは思えないけどな
方針変更という事で・・・
0496nobodyさん
垢版 |
03/09/25 16:05ID:???
Apacheのチューニングはスクリプトの有無や出来とは関係なく
できることだし、別問題じゃないか?
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:???
500
0502nobodyさん
垢版 |
03/09/29 13:04ID:???
>>501
速度重視ならDSOを使わな方が良いという話で良い?
0503とおりすがり
垢版 |
03/09/29 17:18ID:???
>>502
そういうこったな(w

>>501
「あぱちのmoduleとして動作させると」とか
書いとけばつっこまれなかったのにな
0504nobodyさん
垢版 |
03/09/30 17:47ID:???
素直に専用鯖借りてmod_perlとgzip圧縮でも使いなさい。
0509nobodyさん
垢版 |
03/10/18 19:58ID:???
変数より定数使ったほうがやっぱ軽いのかなぁ・・・

あとは定数と直接数値を書き込むのはどっちが軽いのだろうか
0510nobodyさん
垢版 |
03/10/19 00:18ID:???
>>509
ぐだぐだいう前にベンチしろ、このヴォケが
0511nobodyさん
垢版 |
03/10/29 01:38ID:???
ね、みんなローカルでPerlをテストする時、何のソフト使ってるの?
0512nobodyさん
垢版 |
03/10/29 01:46ID:???
何のソフトとは?エディタ?ブラウザ?
0513nobodyさん
垢版 |
03/10/29 01:48ID:???
私はペギーパッド使ってます
0514nobodyさん
垢版 |
03/10/29 01:55ID:???
Winで簡単なPerlだったらプロンプトで十分だけど。
Perlを始めよう、ならエディタから直接プロンプト起動できるし良い。
俺はtxt,HTML,Perl,PHP,SQL,C,Java,XMLなど全部ひとつのエディタで
やりたいからEmEditor3を使ってる。
0515511
垢版 |
03/10/29 13:34ID:???
ね、みんなローカルでPerlをテストする時、何のソフト使ってるの??

自分は
エディタ・・・秀丸
ブラウザ・・・アパッチ
0516nobodyさん
垢版 |
03/10/29 13:46ID:???
特に深いことは考えてない。
エディタ:QX(慣れてる&コマンドラインに渡せるから)
サーバー:ANHTTPD(既に入れてたから)
なんだけど、やっぱ、アパッチの方がいいかね?

……スレ違いだけど、この話題続けていいもんかね。
0517nobodyさん
垢版 |
03/10/29 15:06ID:???
負荷軽減にはあまり関係ない。

エディタはPerlエディタスレ、サーバ話は何処が良いんだ。
無難に初心者質問スレでも薦めておくか。

ところでブラウザがアパッチって凄いな。
0518511
垢版 |
03/10/29 16:10ID:???
あ、ごめん、サーバの間違え
>>512がブラウザ?って・・・
0520nobodyさん
垢版 |
03/10/30 00:48ID:???
美少女が変態では何の価値もない
0521nobodyさん
垢版 |
03/10/30 10:59ID:???
テストサーバーで、JAVAみたいに「;がありません。」など、
エラーの内容を出力してくれるサーバーって無いの?
0522nobodyさん
垢版 |
03/10/30 12:01ID:???
>>521
例えばCGIでエラーを標準出力に表示するのは?
0523nobodyさん
垢版 |
03/10/30 13:00ID:???
>>522
え?そんなのあるの?知らなかった・・・・
やり方は?
0524nobodyさん
垢版 |
03/10/30 13:34ID:???
>>523
言語にもよるけど、rubyならこんなかんじで

begin
# 例外が発生する可能性がある処理
rescue 例外
puts "#{$!} (#{$!.type})"
puts $@.join("\n")
end

perlはよく知らないけどこれでできるかな?

eval 'なんかの処理';
print $@ if($@);
0526nobodyさん
垢版 |
03/11/06 16:02ID:4b5YfiKA
巷に出回る perl CGI って、
1. グローバル変数多し、my レキシカル変数使わず
2. 関数分割せず、ベタ書き
3. ヒアドキュメントを使わず、print '' の嵐
なものが多い。こんな手法が負荷軽減に貢献すんのか?
意見求む。
0527nobodyさん
垢版 |
03/11/06 16:18ID:???
誰でも負荷軽減を考えているわけではないから
0528nobodyさん
垢版 |
03/11/06 21:45ID:???
>>526
> 2. 関数分割せず、ベタ書き
について負荷軽減との関連性についてのご教授お願いします。
0529ぺるにゃん
垢版 |
03/11/06 22:21ID:???
軽減はしますよ。

でも、HTML を軽くするために、すべての改行を取り払ってサイズを小さくしよう的な
アプローチですにゃ。そこまで必死な人は、すればいいにゃ。
0530nobodyさん
垢版 |
03/11/06 22:26ID:???
ベタ書きのほうが負荷はかからないのは言うまでも・・・
0531nobodyさん
垢版 |
03/11/07 00:48ID:???
ブラウザゲーム作るならやっぱりphpのほうがええかな?
0532ぺるにゃん
垢版 |
03/11/07 01:30ID:???
>>531
負荷を考えれば、そうだけど。
普及を考えれば、どうかにゃあ。
0533nobodyさん
垢版 |
03/11/07 02:57ID:???
ヒアドキュメントってprint"と変わらないんじゃなかったっけか?
0534ぺるにゃん
垢版 |
03/11/07 03:40ID:???
ケース1:print 文の嵐
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
>>537
へー結構差があるんだね。
0541nobodyさん
垢版 |
03/11/07 19:01ID:???
>>540
PHPA、だいぶというかかなり違うようですが。
0544nobodyさん
垢版 |
03/11/11 02:37ID:???
>526
my 変数の方が速いの?
速度とか関係無しにstrict通るようにした方が良いだろうって話は置いといて。
0545nobodyさん
垢版 |
03/11/11 03:02ID:???
そりゃあ速いさ
シンボルテーブルに登録されないし
0547nobodyさん
垢版 |
03/11/11 20:21ID:???
メモリにかかる負荷を測定するってことは出来ますかね。
0548nobodyさん
垢版 |
03/11/11 21:35ID:???
ああ俺もそれ調べたい。
と言うかメモリ使用量とかどうやって調べてるんだろ…。
測定用のモジュールとかあるのかな?
0549nobodyさん
垢版 |
03/11/11 21:57ID:???
>>547-548
OS に依る。Linux や *BSD なら vmstat(8) とか top(1) で
別ターミナルから測定。
0550nobodyさん
垢版 |
03/11/11 22:06ID:???
Winは無理っすか。
タスクマネージャみたいな監視ツール作ってログ取るようにすれば良いんかな…俺にゃ無理だけど…。
0551nobodyさん
垢版 |
03/11/12 20:29ID:???
掲示板とかのスクリプトでHTMLを吐き出してそれにアクセスさせるってあるけど
ログファイル自体をHTMLにするって効率悪いよねぇ。
0552nobodyさん
垢版 |
03/11/12 22:06ID:???
>>551
変換するのは1回だがアクセスされるのは何度もあるからいいのよ
0553nobodyさん
垢版 |
03/11/13 00:24ID:???
逆にアクセス解析とかカウンターとかは変換するだけ無意味って言うか
ログなんて管理人しか見らんし。
0556nobodyさん
垢版 |
03/11/16 09:50ID:+X9Lai7L
久しぶりに見たら。このスレまだ生きてたんだー
0557nobodyさん
垢版 |
03/11/17 01:02ID:???
今日、会社休みます。。。

会社の負荷を減らすためにネ!
0558nobodyさん
垢版 |
03/11/17 01:47ID:???
1日だけとは言わずに毎日休んだらどうっすかね?
0559nobodyさん
垢版 |
03/11/17 01:52ID:???
人類のお荷物を減らすために?
0561nobodyさん
垢版 |
03/11/27 00:12ID:fPk+Wuzv
堕スレ化したの?
でも、結局負荷軽減ってアルゴリズム考えた方が、
myがどーの、ヒアドキュメントがどーの、言うより意味あるよね。
言語選択ではある程度答え出てるし、このスレの意義って。。。
0562nobodyさん
垢版 |
03/11/27 02:12ID:???
ちょっとした負荷を減らすために非常に参考になりました
0565nobodyさん
垢版 |
03/12/01 11:39ID:???
やっぱ表示速度を優先するか
サーバの負荷を優先するか。

きわどいな…
0568nobodyさん
垢版 |
03/12/01 14:07ID:E1CqoPVw
> [ネットランナー]
> ベスト・オブ・ツール 2002
> サーバ&コミュニティ部門 掲示板CGIカテゴリー
> (祝) 金賞受賞

これはすごいことなの?
0571nobodyさん
垢版 |
03/12/01 15:14ID:E1CqoPVw
>>570
「ネットランナー」って読んだことないです

とりあえずぐぐってみたら、
http://www.zdnet.co.jp/internet/runner/
> 超ヘビーユーザーになるためのインターネット活用誌
( ゚д゚)ポカーン
0572nobodyさん
垢版 |
03/12/01 15:31ID:???
>>571
厨房の愛読書だよ
賞もCGIの人気とか上っ面だけしか見てないで取ったりして、
作る人から見たらひどいソースのものも入賞してる
0573nobodyさん
垢版 |
03/12/01 16:04ID:???
うるせぇよ、年末の賞の審査員は有名サイト管理者を寄せ集めてるんだから、
それには文句いうの(・A・)イクナイ!!
0574nobodyさん
垢版 |
03/12/01 16:37ID:???
まあ、実際使う側からしてみれば、
たいていのやつがソースなんてどうでもいいんだがな。
0575nobodyさん
垢版 |
03/12/01 17:37ID:???
とりあえず、あんなのに金賞をあたえるネトランは糞
0576nobodyさん
垢版 |
03/12/01 17:46ID:w243ltNf
ちょっと使ってみた

重(・A・)イイ!!
返信で無制限にファイルをアップロードできた
ファイルタイプの判別を拡張子のみでやってる

設定でどうにかなるかもしれないけど
とりあえず気になったのはこんなところ
0577nobodyさん
垢版 |
03/12/02 16:30ID:???
ていうか、コード酷すぎ。
配列の使い方すらわかってないように見えたし、変数全部グローバルだし。
関数の使い方も変だし。 ネットランナーとかいう雑誌のレベルがわかっちゃうな
0578nobodyさん
垢版 |
03/12/02 18:49ID:???
だから対象の選考者は一般人だってば
0579nobodyさん
垢版 |
03/12/02 19:09ID:???
一般人だとなんだっていうのよ?
0581nobodyさん
垢版 |
03/12/02 20:28ID:???
>>566
ネットランナーとやらでは金賞かもしれんがバグ放置はまずいと思うぞ。
常にSTDINから無条件で受け入れる仕様。
投稿記事がある状態で-Tを付けて起動するとrtn_gnrl.plで起こる無限ループ。
管理用ページ→基本設定→「記事ページ最大表示数」を空にして設定保存→掲示板へ戻ると
Lib_gnrl.plで0除算して二度と起動しなくなる事で負荷を下げるエレガントな仕様、等他大量。
0582nobodyさん
垢版 |
03/12/02 20:38ID:???
>>581
> 負荷を下げるエレガントな仕様
禿しくワロタ

[Tue Dec 02 20:31:53 2003] [error] [client 127.0.0.1] Illegal modulus zero at ./routine/Lib_gnrl.pl line 514.
[Tue Dec 02 20:31:53 2003] [error] [client 127.0.0.1] Compilation failed in require at bbs.cgi line 35.
0583nobodyさん
垢版 |
03/12/03 02:06ID:???
こんなとこで陰口たたいててもしょうがない。
直接言ってやらないと。
0584nobodyさん
垢版 |
03/12/03 08:56ID:???
陰唇と陰口どっちが好きですか?
0586nobodyさん
垢版 |
03/12/05 16:47ID:???
陰核を
  叩いてわたる(^^)
        585
0587nobodyさん
垢版 |
03/12/07 10:59ID:kmAZpJfG
Linuxサーバ、topで調べてみたら
毎晩httpdにCPU20〜89%くらい使用量があって
サーバが激重なんですが、原因がはっきりしない…

Apacheやネットワークの設定をどうにかこうにかして
負荷を減らす方法無いですか?
0589nobodyさん
垢版 |
03/12/07 16:07ID:???
>>587
どのようなスクリプトを実行させているか、で話は変わってくる。
0590nobodyさん
垢版 |
03/12/07 23:24ID:???
>>587
非力なwwwサーバで山ほどモジュール組み込んで激重CGIでも置いてるんだろ
0591nobodyさん
垢版 |
03/12/08 00:18ID:???
鯖がリダイレクト合戦してるんだよ。
0592587
垢版 |
03/12/08 10:06ID:ZQtmk+Sq
>>589
2ショットチャットとか画像アップローダとか・・。

>>590
えーっとサーバは確かPenIVの2GB、RAM1GBだったかな。
0596nobodyさん
垢版 |
03/12/08 20:07ID:???
PenIVの2GB
PenIVの2GB
PenIVの2GB
PenIVの2GB
PenIVの2GB
0597nobodyさん
垢版 |
03/12/09 04:16ID:oL7UDJrs
>>587デテオイデ。
0598nobodyさん
垢版 |
03/12/09 07:30ID:???
あまりに盛り上がらなかったからねぇ
0599nobodyさん
垢版 |
03/12/09 10:15ID:5gjkqVTX
陰口を叩く。
0600nobodyさん
垢版 |
03/12/10 03:11ID:???
陰唇と陰口どっちが好きですか?
0602 ◆8772606082
垢版 |
03/12/24 04:28ID:???
すれ違いと言われたのでここにきました。

my($a,$b,$c);

とするのと

my($a);#コメント
my($b);#コメント
my($c);#コメント

と書くのでは、処理速度や負荷に差がありますか?
配布とかメンテを考えると後者で書きたいんですが。
0603nobodyさん
垢版 |
03/12/24 05:11ID:???
大差なし。メンテしやすさが最優先。
0604nobodyさん
垢版 |
03/12/28 07:34ID:???
全体で150KBくらいになるCGIソースで
処理によってはルーチンのうちのほんの一部しか
使わないという場合、
処理をライブラリにしてrequireするのと
全体が1ファイルなのとどっちが効率いいのでしょうか?

0605nobodyさん
垢版 |
03/12/28 08:50ID:???
環境によるだろ。計測しろ。
0606nobodyさん
垢版 |
03/12/28 15:28ID:???
計測ってどうやってやるんですか?
でっかい実行ファイルを起動するのと
ちっちゃいのを起動してrequireするのと
どっちが軽いかという問題だと思うんですが。


0607nobodyさん
垢版 |
03/12/28 15:45ID:???
>>606
負荷が気になるなら負荷を調べる方法ぐらい知っておいたほうがよろしいかと
0608nobodyさん
垢版 |
03/12/28 17:57ID:???
>606
そもそも、あなたの「軽い」ってどういう意味ですか?
0609nobodyさん
垢版 |
03/12/28 18:15ID:???
<?
  exit;

  〜以下長文〜

?>
0610nobodyさん
垢版 |
03/12/28 23:20ID:???
>>606
requireのとこまで来たら結局全部読み込まれるのではないかな?
0611nobodyさん
垢版 |
04/01/12 13:26ID:???
処理順では通らない部分のrequireも
スクリプト内にあるとrequireされるんでしょうか?
requireを見つけてからrequireする?
0612nobodyさん
垢版 |
04/01/12 15:36ID:???
>>611
そんな簡単なことぐらい試せばわかるだろ
0613nobodyさん
垢版 |
04/01/12 15:48ID:???
#!perl
if ( 0 == 1 ) { require './存在しないスクリプト.pl'; }
exit;
0614nobodyさん
垢版 |
04/01/13 18:58ID:???
一枚岩で作って、え〜となんだっけか名前わすれたけど
一回実行したらメモリー上にキャッシュして次回から高速実行するツール
あれ使ったほうが軽さという面では圧倒的(ただしCPU負荷)
回線負荷は変わらんし大概先に満杯になるのは回線帯域のほうだ
0615nobodyさん
垢版 |
04/01/13 20:44ID:???
負荷を気にするならperl,phpをやめろ
0616nobodyさん
垢版 |
04/01/15 16:33ID:???
perl、phpの中でだろ?
共有鯖での利用を考えてる人もいるだろうし
0618nobodyさん
垢版 |
04/02/22 16:00ID:???
7行プログラムってスレ、すごいねアレは。
でも、短くするために敢えて重い処理をしていることもあると思うんよ。
それでも短いから負荷は感じないわけだけれども。

単純に処理を軽くする以外にも、コードを小さくする負荷軽減もあるんやねぇ。
0619nobodyさん
垢版 |
04/02/22 22:12ID:hBJi8oj3
言ってること矛盾してるじゃん。
>短くするために敢えて重い処理をしている
>コードを小さくする負荷軽減もある
ドキュンやな。
0620nobodyさん
垢版 |
04/02/22 22:34ID:???
翻訳を試みた。
ある処理をする際に
 A: 複雑な処理をする組み込み関数を使う
 B: 単純な処理をする組み込み関数をいろいろ組み合わせる
の2種類の方法があるとして
 Aの負荷 < Bの負荷
ってこと?
0621618
垢版 |
04/02/23 00:56ID:???
>>620 YES.
そういう場合もあるんじゃないかと思ったので。
0622619
垢版 |
04/02/23 04:07ID:???
フーン。スマソねー。

0623nobodyさん
垢版 |
04/03/17 17:24ID:???
HTTP/1.1 のチャンクコーディングを忘れてない?
試しにnph ソースを作って、Content-Length を送信するようにしたら、
チャンクコーディングされなかったけど、接続が毎回切れるみたい。

どっちが良いのか微妙っぽい。
0624nobodyさん
垢版 |
04/04/20 20:30ID:yfis5kmt
age
0625nobodyさん
垢版 |
04/05/16 04:46ID:2fTgoYEJ
A.. if($aa=~/x/){$pa=1;$pb=1;}else{$pa=0;$pb=0;}
B.. $aa=~/x/?($pa=1,$pb=1):($pa=0,$pb=0);

等価らしいです
ソースは、ttp://ww4.tech.nu/?d=653

たしかにコードは短くできるので試したところ
レスポンスが悪く、重くなった気がします
0627nobodyさん
垢版 |
04/05/16 10:10ID:???
>>625
三項演算子使ってるだけでしょ、普通に使うけど。
レスポンスは落ちるのかなぁ? 
0629nobodyさん
垢版 |
04/05/20 12:34ID:NShBOzWM
PHP普及の原因は、イスラエル・Zend社のマーケティングの成功にある。
@Perlでは別インストールで多くの人が知らないデーターベース利用を標準で使用できるようにし、「データーベースが簡単に取り扱える」というイメージを特に強く植えつけた。
Aウェブサイト作成への特化。例えば、セッション管理がそうだ。
Bソースの隠蔽による著作権保護を可能にした。
データーベースを使いたいが、使い方がわからない。そこに、PHPなら使えるという情報が先に入る。これで、PHPに入った人もかなり多いはず。
PHPの言語仕様はZendに大きく左右される。
二年ほど前、PHPが出始めた頃には、変数のスコープがPerlとまったく同じ仕様だった。
もともと、Perlのソースコードを改編して作成されたPHP。
↓PHPの歴史
http://php.planetmirror.com/manual/ja/history.php
PHPには、Perlコードの退行による高速化の意図が言語のいたるところに見える。
マイクロソフトは、オブジェクト指向への対応というのが大義にVB6.0からVB.NETに言語仕様を大幅に変えた。
今後も大きく言語仕様が変わることはないのか?
オープンソースとは言っても、Zend社の
http://www.zend.com/management.php
の数人のスタップによって大きく左右される。
再帰的定義とされる「PHP:Hypertext Preprocessor」という名前にも理由がある。これは、要するに、正確には、「Perl Hypertext Preprocessor」としたいところだが、GNUの「GNU is Not UNIX」という再帰的な定義をもじったものだ。
要するに、「GPLのフリーソフトのライセンスには違反していませんよ!」と一つには主張し、また、一つには、「PHP is Not Perl」とでも言って、Zendの社としての姿勢を、先人の「Perl開発者たち」から擁護する意図があったのだろう。
Nではなく、Hなのが、そのための味噌だ!Perl開発者たちは、当然、面白くないはずだ。
PHP信奉者は、六芒星(hexagram)マークのユダヤ教にでも、入信せよ!

0630nobodyさん
垢版 |
04/05/20 13:06ID:9F0Z79In
Cで組め。手っ取り早く最速で負荷を極力少なくできる。
0631nobodyさん
垢版 |
04/05/20 14:55ID:???
負荷を少なくするならまず、
データ構造とアルゴリズムを見直せ
次にCPUをグレードアップしろ
それでもダメならCか汗ブラで
0634nobodyさん
垢版 |
04/05/20 16:11ID:cgjPprlD
ここできくなよ
0636nobodyさん
垢版 |
04/07/18 20:12ID:Sl8hc8ID
>>629は、洩佐渡にアボーンされるよ。
0637nobodyさん
垢版 |
04/08/11 03:33ID:2sgdWAV8
なんで掲示板をテキストファイルに出してるんだ?
データベースに入れてしまうのってよろしくないの?
最後の方を読む時とかに早いと思うんだけど。
0640nobodyさん
垢版 |
04/10/12 03:56:07ID:???
2chの話になるけどさ、sageで書き込みするとスレッド位置が変わらず、
index.htmlとsubback.htmlの更新・ソートを省略できて負荷軽減に繋がらない?

と思ったけどレス数表示のために更新しなきゃならないか…。
もう少し工夫すればなんとかなる気がする。
0641nobodyさん
垢版 |
04/10/17 09:28:30ID:???
ディスクのアドレスに直接書き込めばいいと思うよ
0642nobodyさん
垢版 |
04/10/17 10:04:16ID:???
>641

マジレスするとそんな低レベルの操作をしたら
処理中は他の処理が出来なくなるだろうが
0643nobodyさん
垢版 |
04/10/20 23:44:33ID:gn/p6wba
あげマン
0644nobodyさん
垢版 |
04/10/21 19:27:52ID:vF6/MaNc
掲示板なら静的HTML生成が一番簡単で一番効果がある。
スクリプトをあれこれこねくり回す前に試してみれ。
0646nobodyさん
垢版 |
04/10/22 21:15:01ID:???
javaでクッキーを保存する方法が載ってれば全部HTMLにするのに
0648nobodyさん
垢版 |
04/10/24 01:33:51ID:???
>>644
それは理解した上で別の方法を模索するスレなのでは?
0650nobodyさん
垢版 |
04/10/24 14:11:54ID:???
javascriptでクッキー出力はできるけど・・・多分違うことなんだよな
0651nobodyさん
垢版 |
04/10/24 18:28:23ID:???
静的HTML生成ってどうやればいいの?
0653nobodyさん
垢版 |
04/10/25 05:14:38ID:???
>>649
ようするにHTMLでクッキー機能できるようにすりゃいいってことでしょ?
0654nobodyさん
垢版 |
04/10/25 05:44:32ID:XKm5So8L
セットはcgiですればいいから、あとはそれをJavaScriptでゲットすればいいんだよ。
0655nobodyさん
垢版 |
04/10/25 14:51:34ID:???
ファイルの読み書きはperlのキモの部分だから、せめてこれだけは理解しましょう。
0656nobodyさん
垢版 |
04/10/25 15:08:33ID:???
javascriptでゲットする方法が載ったサイトきぼん
0658nobodyさん
垢版 |
04/10/25 17:09:16ID:???
htmlの不都合点とかあるかな?
NEWマーク表示できないくらいしか思い浮かばん
いらん機能だし
0659nobodyさん
垢版 |
04/10/25 17:26:29ID:7ozi48tg
>>658
出来る。
0660nobodyさん
垢版 |
04/10/25 17:29:59ID:7ozi48tg
HTMLの不都合は、たとえばSSI使わないとカウンターが表示できないとか。
0661nobodyさん
垢版 |
04/10/25 23:10:16ID:???
オールHTML化するとレイアウトを変更したときが面倒なんだよなぁ。
ファイル数も結構増殖していくし。

それくらいかの。
0664nobodyさん
垢版 |
04/10/27 10:01:04ID:???
HTMLでクッキーとか機能させるって言ってるけどIE以外は無視?
operaやMozillaだと文字化け起こすぞ
0665nobodyさん
垢版 |
04/10/27 10:20:49ID:???
IE以外いいよってみんな思ってるんじゃない?
実際そうだし2chもそうだからいいかな、と。
0666nobodyさん
垢版 |
04/10/27 10:40:24ID:GQQpVWEo
tcupの掲示板てどうなってんだろう。
拡張子無しで/bbsってなってるのが昔から不思議で。
googleなんかのuri表示で見ると、
http://xxx.teacup.com/yyyy/bbsだと、
www.tcup-.com/xxx/yyyy.htmlが本体らしいんだけど。
0667nobodyさん
垢版 |
04/10/27 11:17:53ID:???
javaだとIE以外じゃ日本語取得できないのかorz
みんな妥協派ですか?
0670nobodyさん
垢版 |
04/10/27 16:51:51ID:pygimpYU
>>668
( ´,_ゝ`)プッ
0672nobodyさん
垢版 |
04/10/27 23:34:24ID:???
閲覧時にクッキー使ってなにがしたいの?
投稿時ならともかく。
0673nobodyさん
垢版 |
04/10/27 23:38:06ID:???
例えばツリー、スレッド表示の切り替えとかじゃね?
0674nobodyさん
垢版 |
04/10/27 23:48:20ID:???
お!早い。
切替ならそれぞれリンクを用意するだけで済むのでは?
閲覧時のクッキーってストーキング用途しか思いつかない。
0675nobodyさん
垢版 |
04/10/27 23:57:22ID:???
>>674
それだけしか思いつかないおまいの脳に乾杯
0676nobodyさん
垢版 |
04/10/28 03:33:14ID:???
>>664-667あたり
2chで化けるのはbbs.cgiで発行してJavaScriptで取得してるからじゃ?
0677nobodyさん
垢版 |
04/10/28 06:29:55ID:???
javaで発行すると問題あるんじゃなかったっけ?
0678nobodyさん
垢版 |
04/10/28 07:03:35ID:aCWpvFRR
つーか無理にHTML表示なんかせんでもいいよ。
動的にやればインタラクション的にも手軽になんでも出来るし。
0679nobodyさん
垢版 |
04/10/28 07:20:03ID:???
わざわざ内部に組み込むのがアレだって話してんだろ
0680nobodyさん
垢版 |
04/10/28 08:43:20ID:???
掲示板の1ページ目だけだけど
HTMLにすんのとしないのとじゃけっこう差出るの?
0681nobodyさん
垢版 |
04/10/28 09:01:31ID:???
htmlファイルに書き出すかどうかは、そのサイトへの訪問者の利用状況によって異なる
一概に○○なら△△とはいえない。
まあ、統計的に、そのページが更新されるまでに10回以上アクセスされるとわかれば、
一般的にはhtml化した方がいいだろうな。

式にすれば

html化するコスト << html化しない場合のCGI起動コスト * not modify間での平均アクセス数

の場合は、html化のメリットが大きい
0682nobodyさん
垢版 |
04/10/28 14:03:48ID:???
まあHTMLよりCGIの方が負担少ないなんてことはないな
0683nobodyさん
垢版 |
04/10/28 15:02:48ID:???
>>678
このスレは負荷軽減がテーマなんだが?
0684nobodyさん
垢版 |
04/10/28 15:05:59ID:???
まあHTMLにしないで負荷を軽減する方法を模索していくのもいいんでない?
0685nobodyさん
垢版 |
04/10/28 16:23:56ID:???
むしろHTML化できないからプログラムの負荷を下げる必要があるんじゃね?
本当に負荷を下げたいならCGIなんか使わずサイト丸ごと圧縮しておくのが一番だろうし。
俺はCGIを作る側だけど実は↑これが一番好き。
0686nobodyさん
垢版 |
04/10/28 19:02:58ID:???
しかしコスト(時間や手間込み)単位での効果ならやはり静的HTML生成がベストチョイスなのも事実だし。
まあ両面作戦だね。
0687nobodyさん
垢版 |
04/10/29 00:44:55ID:???
1, Requests per second: 2.67 [#/sec] (mean)   perl/cgi
2, Requests per second: 17.53 [#/sec] (mean) mod_perl (1と全く同じソース)
3, Requests per second: 60.22 [#/sec] (mean) html (1,2のプログラムで出力された物をhtmlで保存した物)
DBIやarchive等、結構重いモジュールを読み込んでDBにアクセスして表示するプログラム。mod_perlのDBアクセスは永続化している。
処理内容によって一概にいえないけど1つのパターンとして参考までに。

静的htmlだとカウンターだのダイレクトに表示出来ないしクッキーも文字化け(IEではunicode,xxxだとURLencodeだの)
等の問題が発生してめんどくさい。クライアント依存の処理はやはり気持ち悪い。
0688nobodyさん
垢版 |
04/10/29 07:10:04ID:???
>>687
これって数字高い方がいいってことなの?
ベンチマークに無知でスマソ

確かに文字化けるんだよな・・・
ユーザにHTMLとCGIモードを選ばせるようにしたらいいかも
0689nobodyさん
垢版 |
04/11/04 17:30:49ID:???
書き込みのときjavascriptでクッキー発行すれば化けんよ。
0690nobodyさん
垢版 |
04/11/10 00:14:30ID:???
>>1
このアンカー、2chではタグをアクセスごとにつけてるんだっけ?
0693nobodyさん
垢版 |
05/01/07 17:35:04ID:qgEKEyAA
質問なんですが、
リンクトレードproやThe Roomのランキングリンクのようなエロサイトによくあるランキングを
PHPで作ってみました。ユーザーごとに情報を1行CSVに保存させて、それがカウントファイルも兼ねてます。
表示部分は静的です。

出来上がったところで、上司に負荷かかりそうだからDBにしてよと言われ、MySQLで作り直してみたところ、
現在ユニーク1万/日くらいのサイトであっというまにMySQL接続数多杉エラーが出ました。
サーバ管理者にMySQLの接続数多すぎと出ましたと言ったところ、
設定変えることもできるけど、トラフィック多いサイト目指すならPostgreSQLにしたほうが良いといわれました。

今とりあえず素直にPostgreをサイト見ながらソース書き直してますが、
一体どの方法がベストなんでしょうか。

ちなみにPHPは趣味レベル、DBの経験は今年からなのでソースに問題があるのかもしれません・・
0694halc
垢版 |
05/01/07 18:03:52ID:???
>>693
postgresにすれば良いってわけじゃないような。
ユニーク1万/日ぐらいだと、squidでリバースプロクシを導入してみるとかは?
0695693
垢版 |
05/01/07 18:12:16ID:???
>>694
今後増える予定です。目標が10万PV/日くらいです。
0696halc
垢版 |
05/01/07 18:22:54ID:???
>>695
同時接続数を増やせないなら、1接続あたりの接続時間の短縮をやらんといけない訳で。
もうクエリを発行しないと分かった時点でコネクション切断とか、
そのレベルの最適化はやってるよね?
初心者らしいから言ってみると、WHERE句、LIMIT, OFFSETで取得数を限定して、
DBから取得したけど使わず捨てているデータを削りこむとかやってみそ。
0697693
垢版 |
05/01/07 18:56:00ID:???
>>696
やってるつもりなんですが、、
inのカウント取得ファイルのソースをコピーしてみます。
http・・・xxx.php?usrid=$usridで叩いて、DB開き。
$tabledata = mysql_query("SELECT * FROM usr_table",$db);
//配列に入れ
while($row = mysql_fetch_array($tabledata))
{$usr_array[$row[usrid]] = $row;}
//t1フィールドに直前IP記録&カウント
if($rmhost != $usr_array[$usrid][t1]){
$incountup = mysql_query("UPDATE usr_table set incount = ceiling(incount + 1) where usrid = \"$usrid\"");
$ipupdate = mysql_query("UPDATE usr_table set t1 = \"$rmhost\" where usrid = \"$usrid\"");
}
mysql_free_result($tabledata);
mysql_close($db);

if( !$db ) {
print "接続できません。<br>\n";
exit;
}
header("location:{$homeurl}");

これだけです。これで動いたんですが、やっぱり記述おかしかったりしますかね、、?
0698nobodyさん
垢版 |
05/01/07 19:50:01ID:???
まさか mysql_pconnect とか使ってないよね?
0699nobodyさん
垢版 |
05/01/07 21:06:14ID:???
>>693
ランクカウント以外の部分(順位の表示とかカテゴリ参加数の表示とか)はどう処理してる?
もしリアルタイムでやってるなら、静的なHTMLで処理するとかcronで処理させるとかすると、
劇的にコネクト数は減るよ。

ユニーク1万にも耐えられないならDB使う意味ないし、Postgresにすりゃいいってもんでもないと思ふ。
やはり、設計段階からの見直しが必要かと。。
毎秒何回ぐらいqueryの発行あるか分かるなら書いてみて。
0700693
垢版 |
05/01/07 21:46:52ID:qgEKEyAA
mysql_pconnect思いっきりつかってますが、、それって駄目なんですか?

>>699
順位他の処理は、3600秒ごとに静的に書き出してテキストファイルをrequireしてます。
cronではなく、テキストファイルにタイムスタンプ書き出してアクセスごとにチェック、前の書き出しから+3600秒以上経っていたらランキング再書き出し、という感じです。

>ユニーク1万にも耐えられないならDB使う意味ないし、Postgresにすりゃいいってもんでもないと思ふ。
ですよね。。
毎秒何回query発行あるか、どこで見れば良いんでしょう。。
とりあえず今はサイト止まってしまうので旧テキストファイル版に戻してしまいました。
0701nobodyさん
垢版 |
05/01/07 22:16:37ID:???
>>700
やはりそれぢゃったか

mysql_pconnect して DB に接続すると
mysql_close しても
スクリプトが実行を終了しても
それどころかクライアントがブラウザを閉じた後も
DB接続が切断されずに残り続けるんぢゃよ
つまり今の状態だと mysql_close が全く効いておらん

これは接続をプールして再接続の負荷を減らすためのGJな機能なんぢゃが
DB接続数上限が逼迫している状態では逆に足を引っ張ってしまう両刃の剣
素人にはお薦めできないとまでは言わないが、注意して使わんといかんのぢゃ
mysql の最大接続数を apache の MaxClients より大きく設定する、とかぢゃな

とりあえず mysql_pconnect を myqsl_connect に変更すれば
mysql_close で接続が切断されるようになるので
かなり状況が改善するんぢゃないかのう
0703693
垢版 |
05/01/08 01:09:47ID:???
うわー、、そうだったんですか。
きっとそれっぽいですね。
大変勉強になります。ありがとうございました。とりあえずそれを試してみます。
0704halc
垢版 |
05/01/08 04:03:06ID:???
>>697
なんてか、削り込み以前にDBMSの本をちゃんと読もうよ。。
  header("location:{$homeurl}");
と、リダイレクト先URLしか要らないのに、
  $tabledata = mysql_query("SELECT * FROM usr_table",$db);
ここで全テーブルデータをぶっこ抜いているのがそもそもの間違い。

ここは
  $tabledata = mysql_query("SELECT * FROM usr_table WHERE usrid = \"$usrid\" ",$db);
と必要な行以外は抜いてこないように直すべき。
0705halc
垢版 |
05/01/08 04:13:11ID:???
全テーブルぶっこ抜きの方法は、いわゆる「MySQLでかんたん掲示板」系の
入門書から取ってきたんだと思うけど、このやり方、小さな個人サイトなら
またしも10万PV/日のサイトに使える方法じゃない。

という訳で入門書以外のDBMS専門書を読むことを勧める。
0706nobodyさん
垢版 |
05/01/18 10:29:13ID:???
perl のDBMモジュールでも
データーベースオープン
全データーを配列にコピー
データーベースクローズ
その後配列に対して処理色々なんてことをやってるスクリプトを見かけるが
全部読み込まなきゃいけない処理なら普通のファイルに保存したほうが軽くて速くないか?
0707nobodyさん
垢版 |
05/01/18 13:57:10ID:???
>>706
早いかもしれないけど影響がでるほどの量だとすれば、
データの書き込み(更新)する必要がある場合dbでやる方が安全だと思う。
0708nobodyさん
垢版 |
05/01/19 10:26:45ID:???
>>707
いや、だから、あのさ(w
db使うなら丸ごと読み込んだりしないだろう?普通
0709halc
垢版 |
05/01/20 23:11:44ID:???
全ぶっこ抜きじゃトランザクション隔離のかけらも無いよなぁ
0710nobodyさん
垢版 |
05/01/29 14:37:47ID:8oiPQs40
大前提として、どれくらいの規模(データと一日あたりのhit数)になったときに
プレーンテキストからDBに移行するべきなのかという目安を考えるべきだと思う。
0711nobodyさん
垢版 |
05/01/29 15:49:02ID:???
サーバスペックやスクリプトの作りにもよるからなあ

とりあえず思いつくのは

・アクセス頻度と平均処理時間から待ち行列を計算して「ヤバ」と判断したとき
・top の load average が 1 を超えたとき
・HDDのスワップ音が聞こえるとき
・体感的に「重い」と感じたとき
0712nobodyさん
垢版 |
05/01/30 01:18:32ID:???
表示用HTMLファイルとか作成しちゃうなら、場合によっては
小規模でもデータはDBで管理した方が良いね。
0713nobodyさん
垢版 |
05/01/30 05:59:08ID:???
そうだな、俺もDBが動いてる環境なら規模によらず常にDBを使う
0716nobodyさん
垢版 |
2005/05/06(金) 15:00:41ID:???
DB使った方がコストが安くすむ…場合もあるからDB使っちゃうな。
こんな俺はきっと駄目なPGだ orz
0718nobodyさん
垢版 |
2005/10/07(金) 14:59:04ID:???
落ちないもんだな・・・
0721nobodyさん
垢版 |
2005/10/14(金) 18:19:58ID:???
httpd.conf 最適化とかリバースプロキシとかの話はここではしてないの?
0722nobodyさん
垢版 |
2005/10/16(日) 01:53:02ID:???
>>721
それはWebProgを走らせる「環境」の話だから。
ここは共有鯖で使うCGIの負荷を以下に下げるかの話するスレ(機能してないけど)
0723nobodyさん
垢版 |
2005/10/16(日) 12:07:20ID:???
httpd.confみたいに説明書と設定ファイルが同じになってると萎える
コメント行削ったら半分以下になった
0724nobodyさん
垢版 |
2005/10/17(月) 21:25:18ID:???
すいません、ちょっと負荷の意味が違うかもしれない質問なのですが
CGIやPHPで大きなファイルなどのダウンロード速度の制限などを行えるのでしょうか。
検索してみても出てこなかったので
やはりサーバーの方で直接設定しないと出来ないものなのでしょうか。
0725nobodyさん
垢版 |
2005/10/17(月) 22:42:47ID:???
普通はmod bandwidthとか使ってやると思うけど・・
0726nobodyさん
垢版 |
2005/10/17(月) 23:09:28ID:???
>>724
スクリプトでファイルを読んで、pushするなら出来ないことも無い。
でも回線負荷は下がるかもしれんが、サーバの負荷軽減にはならんでしょ。
普通は>>725の通り。スクリプトでファイルを送り出すなんてしない(高負荷)。
0727nobodyさん
垢版 |
2005/10/17(月) 23:11:24ID:???
となると,DBにファイル放り込むのはよくないのかな
0728nobodyさん
垢版 |
2005/10/17(月) 23:27:23ID:???
教えていただき、ありがとうございました。
やはりサーバー側で直接行う方がスマートで負荷低減になるのですね。
当方サーバー側をTelnet出来ない専用サーバーをレンタルしており
スクリプトでどうにかならないか考えておりました。

SQLite機能がついており、ファイル制限が出来るらしいのですが
DBもやめた方がよいとのことで、
ありがとうございました。
0729nobodyさん
垢版 |
2005/10/18(火) 23:51:53ID:???
>>727
管理上の必要があれば、DBに放り込むこと自体が悪いわけではない。
0730nobodyさん
垢版 |
2005/10/19(水) 07:51:56ID:???
>>728
専用鯖なら負荷かかってもいいんじゃないの
0731nobodyさん
垢版 |
2005/10/19(水) 11:40:17ID:???
>>728
専用サーバなのにTelnetできないのかww
0733nobodyさん
垢版 |
2005/10/27(木) 22:33:36ID:???
ちょいと具体的な話でなくてもうしわけないんですがとあるWEBアプリケーション(phpからpostgresを使ってるらしい)について相談をうけまして
ちょっと覗かせてもらったらapacheのプロセスがひとつ毎に10MBほどもメモリーを消費しちゃってるんで、一瞬、え?っと思ったんですが
当方phpもpostgresもあんまり詳しくありませんのでもしかしたらこの構成だと普通の状況なのかな?とも思いまして質問させていただきました

phpはapache2.のモジュールとして組み込んで有ります。

それくらいふつうだろとか、直感的になんかあやしいとか、プログラムがタコだとそうなるとか、感想をお願いします

0735nobodyさん
垢版 |
2005/10/28(金) 00:30:42ID:???
ポスグレのデーモンじゃないか
0736nobodyさん
垢版 |
2005/10/28(金) 00:31:21ID:???
>>734
要約するとapacheのモジュールとして組み込まれたphpからpostgresqlを使ったらメモリーを10MBガメるのは普通ですか?
ってことだな
0737nobodyさん
垢版 |
2005/10/28(金) 00:32:58ID:???
ただ単にApacheに色々組み込みすぎて肥大化してるんじゃない?
0738nobodyさん
垢版 |
2005/10/28(金) 00:40:50ID:???
>>736 thx
ただのリクエストで、どれだけ消費するか見てみないと、なんともいえないね。
0739nobodyさん
垢版 |
2005/10/28(金) 00:48:08ID:???
>>733
>apacheのプロセスがひとつ毎に10MBほどもメモリーを消費しちゃってるんで
普通。
0740739
垢版 |
2005/10/28(金) 00:50:20ID:???
正しくは
>phpはapache2.のモジュールとして組み込んで有ります
のような状況の場合、普通。
(PHPのエクステンションを極力動的に組み込めば減るけど)
0741nobodyさん
垢版 |
2005/10/28(金) 02:09:42ID:???
PHPってメモリー食いなんですね
もしかしてCGIから動かしたほうがいい?
0742nobodyさん
垢版 |
2005/10/28(金) 07:50:18ID:???
>>741
10メガ位でけちけちすんなよ
別プロセスで立ち上げると負荷かかって遅くなるし
0743nobodyさん
垢版 |
2005/10/28(金) 11:45:46ID:???
>>741
その代わりPHPを使うリクエストがくる度にロードすることになるから
今度はCPU負荷が高くなるよ。まあサイトの特性で考えれ。
共有サーバなんかはセキュリティを高めるにはCGIで動かすしかないしな。
(例えリクエストの度にロードされてレスポンスが悪くなるデメリットがあるとしても)
0744nobodyさん
垢版 |
2005/10/29(土) 00:54:53ID:???
>>743
>共有サーバなんかはセキュリティを高めるにはCGIで動かすしかないしな。

何故?
0746nobodyさん
垢版 |
2005/11/05(土) 02:38:22ID:???
参照渡しとかすると負荷は軽減するのか?
0747nobodyさん
垢版 |
2005/11/05(土) 08:52:03ID:mQF7x1FD
データの無駄な二重化が無いから負荷は軽減すると考えてもいいんじゃ?
間違ってたらスマソ
0748nobodyさん
垢版 |
2005/11/05(土) 09:39:48ID:???
データがコピーされるのは,値が変更されるときでは?
$a = $b ってしてもその瞬間にはコピーされない.
0749nobodyさん
垢版 |
2005/11/06(日) 12:33:12ID:???
らしいね。
だから、PHPでは「パフォーマンス重視の参照渡し」は
ほとんど無意味ってことかな。
0750nobodyさん
垢版 |
2005/11/06(日) 12:35:31ID:???
C ならともかく,スクリプト書きながらそういうレベルのパフォーマンス向上を考えること自体間違いな気もするね.
0751nobodyさん
垢版 |
2005/11/06(日) 12:37:26ID:v9ryuHmW
むしろインタプリタだから「少しでも速度向上」を気にするのでは?
0753nobodyさん
垢版 |
2005/11/06(日) 17:38:39ID:???
>>741
eAcceleratorなんか使ったら相当違わない?
0754nobodyさん
垢版 |
2005/11/06(日) 22:56:29ID:???
>>751
要するに PHP を選択してる時点で既にパフォーマンスよりも開発効率を取ってる,ってこと.
速度上げたいなら重い処理だけ C/C++ 使うとか,あるいはハードウェアで解決するとかしたほうがいいんじゃないかな.
アルゴリズムの最適化はもちろんするけど.
0755nobodyさん
垢版 |
2005/11/06(日) 23:12:20ID:???
まずはプロファイリングだな
0756nobodyさん
垢版 |
2005/11/30(水) 18:13:41ID:K1wk1cov
アクセラレータつかったりFCGI化するだけで天と地ほど違うぞ
インタプリタだからこそ工夫するというのはその通りだけど、
ざっくり体感に跳ね返ってくるレベルで考えたほうがいいと思う
0757nobodyさん
垢版 |
2006/01/14(土) 16:02:10ID:???
>>733
たかだか10Mだろ?
そこメモリ何Mのマシン使ってんのよ?
32Mとか?w
0758nobodyさん
垢版 |
2006/04/05(水) 19:30:26ID:zzYD4Tt9
このスレッドで聞いていいかな・・・?

DBサーバとフロントサーバを分ける場合、
両者はやはり同じLAN内に設置するのが基本ですか?
離れたところに置くと、レスポンスはけっこう遅くなります?
0759nobodyさん
垢版 |
2006/04/05(水) 20:38:39ID:???
>>758
物理的な距離とレスポンスは関係ない。
LANであろうが回線が遅ければ遅い。
WANであっても回線が速ければ速い。
0760nobodyさん
垢版 |
2006/04/05(水) 20:45:37ID:???
マルチだけど答えておくか。

セキュリティを重視して分けておけ。
0761758
垢版 |
2006/04/05(水) 21:03:46ID:zzYD4Tt9
どもです。
同じLAN内に設置すべき、っていうわけでもないんですね。
でも普通はLAN内の方が回線は速そうですね。
0762nobodyさん
垢版 |
2006/04/05(水) 22:19:19ID:???
>>761
何かLANとドメイン(≠インターネットドメイン)を
一緒くたにしてるように思えるけど。
0764nobodyさん
垢版 |
2006/04/07(金) 00:57:56ID:45h+7cJz
インターネットを介さないという意味なら、プライベートIPアドレスで構成されたLANの中にウェブサーバとDBサーバを置くのが普通。
0765nobodyさん
垢版 |
2006/04/07(金) 01:16:20ID:???
おまいらDB間のやるとりはSSHでしょ?
0767nobodyさん
垢版 |
2006/04/07(金) 09:28:08ID:???
ウチはRFC1149準拠。夜間の速度が出ないのが悩み
0769nobodyさん
垢版 |
2006/04/19(水) 23:24:50ID:???
>>757
たかだか、というけど、メモリ上限のあるVPSとか借りてると結構辛いよ?
0773aaz
垢版 |
2006/11/05(日) 22:15:22ID:???
asd D
0775nobodyさん
垢版 |
2006/11/11(土) 00:59:59ID:???
今更だが
このスレって負荷軽減の邪魔する委員会なんだろ?
0776nobodyさん
垢版 |
2006/11/26(日) 22:29:27ID:3LCl7xig
PHP+MySqlでユーザー認証する時、DBにはユーザーのIDやパス他の情報があるとします。
仮にそれはもうめちゃくちゃユーザーが登録されていて(かなりの負荷)、DBの読み書きをする場合以下の2つのパターンだとどちらが負荷がかからないでしょうか?
速度の点についても知りたいです。

1.1つのテーブルに全員分登録しておき、普通に読み書きする。
2.ファイルに「ID+その人が使用するテーブル」を記述しておき、それを読み込んでから、複数用意されてるテーブルの中から指定されたテーブルを動的に選択して、読み書きする。

どうなんでしょ?質問+保守上げ。
0777nobodyさん
垢版 |
2006/11/26(日) 22:33:49ID:3LCl7xig
あ、2の複数テーブルはまぁ10個くらいとします。
仮にデータが50000件あれば1つのテーブルは5000件で済むということになりますよね?
0778nobodyさん
垢版 |
2006/11/26(日) 22:37:40ID:???
2ちゃんねるってデータベース使ってるんですか?
0781nobodyさん
垢版 |
2006/11/26(日) 23:32:51ID:???
>>776
試して測ってみんなに報告。これで皆幸せ。











多分1の方が効率的だと思うけど。
0782776
垢版 |
2006/11/27(月) 08:15:18ID:c6HTdBMZ
レスありがとうございます。やっぱり1ですかね。
2だと他に色々やりたい時不便になってきますよね。
地道にプログラム面を改善していった方がいいのかもしれませんね。
0783nobodyさん
垢版 |
2006/11/27(月) 20:23:19ID:???
>>778
2chはテキストファイルベースです
言語はC

>>776
1の方
DBの負荷を下げたいのなら、テキストファイルベースの処理を上手く使うといい
0784nobodyさん
垢版 |
2006/11/29(水) 02:28:09ID:???
2chはperl+SpeedyCGIで、一部Cじゃなかったっけ?
0785nobodyさん
垢版 |
2006/11/29(水) 02:58:52ID:???
bbs.cgi=Perl
read.cgi=C
だったかと
0787nobodyさん
垢版 |
2006/11/30(木) 03:56:05ID:???
リレーションがいらないなら、フラットなただのテキストファイルが早いんだね。当然か。
0788nobodyさん
垢版 |
2007/01/30(火) 02:11:44ID:yyajzISr
掲示板の画像をダウソツールで根こそぎかっぱらっていく不届き者を特定した
さて、貴方ならどのような方法でdenyする?
0789nobodyさん
垢版 |
2007/01/30(火) 07:57:33ID:???
アクセスポイント絞りの範囲指定で.htaccess。
0791nobodyさん
垢版 |
2007/02/06(火) 23:24:45ID:???
>>788
ダウソツールとわかるUserAgentならまずそいつを403へ
次に一定間隔の連続or同時接続を503へ
それでも懲りないならFWで叩き落す。
0792nobodyさん
垢版 |
2007/02/26(月) 07:23:03ID:g5As6DDV
私も今、掲示板サイト作ってる途中なので、ちょっとカキコミさせてもらいますお
JAVAなのでちょっとperl、PHPスレとは違うけど共通する部分はあるので。
私の場合、某フリーソースの掲示板を元々おいてたんですけど、レス数が3万をこえたあたりから
ワード検索やレスのカキコミに非常に時間がかかるようになってしまいました。
そのCGI(PERL)はレスのログをテキストファイルに出力しているんですが、毎回何万行も読むんではそりゃ時間かかる
なという感じになってしまいました。
そこで、新しく掲示板作る時には、DB使うべきなのか、それともログ出力用のテキストファイル使うべきなのか、HTMLファイルとして吐き出す
べきなのか、どれがいいとおもいますか?
2chとかはオーバーヘッド対策でDB使わない仕様にしてると聞きました。
やっぱDBにするメリットはオーバーヘッド考えると皆無なんでしょうか?
HTMLファイルに書き出すってのは軽そうだけど検索用のメソッドをHTMLファイルに走らせると早いのかどうか不安な部分もあるんです。
関係ないのでしょうか?
0794nobodyさん
垢版 |
2007/02/26(月) 14:14:45ID:???
過去ログを小分けにすればいいじゃん。
2chだって1000レスか512kで別のスレ立てないといけないんだし。
0795nobodyさん
垢版 |
2007/02/26(月) 23:25:08ID:???
>>792
DBのオーバーヘッドを心配しなければいけない程アクセスが予想されるなら、
表示はHTMLで出力、読み書きはテキストファイル(もちろん分割して)すればいいし、
そうでもないならDB使えばウンコみたいに楽ちん。
0796nobodyさん
垢版 |
2007/02/27(火) 01:43:49ID:Sbf00PNr
>>794>>795

DB使わない前提で考えると
ということは、1スレごとにHTMLファイルを作ったほうがいいんでしょうか?

1スレ、1ファイルにしたら何万ファイルもできちゃいっても大丈夫なんでしょうか?



0798nobodyさん
垢版 |
2007/02/27(火) 21:43:24ID:UMgu+4mi
>>797
大変参考になりました。
こんなに役に立った外部リンクは初めてです。
本当にありがとうございます。
最初grep型の検索しか考えてなかった自分の低脳ぶりがはずかしいですw

結局、スレごとに1ファイル書き出して、Luceneを実装してこれでインデクシングして検索に対応することにしました。
Namazuに比べるとどうかな?と最初は考えてましたが、wikipediaでの採用実績を考えると問題ないとおもいましたので。

1スレ1ファイルをテキストファイルで生成して、XSLTで整形してHTML表示しようとおもいますが、YSTやGOOGLEのSEOを考えると、
最初からHTMLとしてファイル生成したほうがいいとおもいますか?
テキストファイルで生成するとpageRANKつかないですよね?
0799nobodyさん
垢版 |
2007/02/28(水) 03:31:22ID:???
>>798
何いってんのかよくわかんねえけど
ページランクはHTMLで書いてあれば、どんな形式でもつく。
0801nobodyさん
垢版 |
2007/04/19(木) 09:38:42ID:80HBTeap
おいコラ
1分おきに画像掲示板に底引き網かけてるやつ
死ね!おまえだよおまえ→.kngwnt01.ap.so-net.ne.jp
丸ごと永久規制してやってもまだやってやがる
何時間PC付けっぱなしなんだよ
火事になって死ね
0802nobodyさん
垢版 |
2007/05/05(土) 17:01:11ID:429gUmit
保守
0803nobodyさん
垢版 |
2007/06/21(木) 00:36:03ID:sn0UC2wW
質問させてください。

Webサーバ上にあるファイル(バイナリ含む)をファイルパス直接指定でダウンロードする(させる)のと、
以下のようにperlのcgiを通してダウンロードさせるのではどのくらい負荷が違うのでしょうか。


binmode(STDOUT);
while(1){
 read(FILE, $buf, $bufsize);
 last unless (length($buf));
 print $buf;
}


目的は、IEで日本語ファイル名のファイルをダウンロードするときに
ファイル名が文字化けするのを防ぐためです。

つまりapplication/octet-streamやContent-Disposition: attachment; filename=を付けるためだけのCGIです。
もしダウンロードしている間ずっとCPU時間を使っていたら大変だと思いまして。

例えばファイルパス名指しで直接アクセスした場合の負荷を1として、
CGIを使うと10くらいになるのかあるいは1.1くらいなのかの目安が知りたいのです。

bufsizeは1024です。「bufsizeをこう変えたら負荷が減る」というアドバイスなどもあれば助かります。
0804nobodyさん
垢版 |
2007/07/03(火) 19:21:20ID:E54Y+fni
ECサイトCGI(ZenCart)は
CPU負荷が特別高いのでしょうか。
ご教授お願い致します。
0806nobodyさん
垢版 |
2007/07/05(木) 18:22:59ID:???
究極の負荷削減はクライアントPCで処理をたくさん行わせる手法である
0808nobodyさん
垢版 |
2007/07/06(金) 19:46:39ID:ZTnm/2V7
ttp://minkara.carview.co.jp/userid/108766/profile/
0809nobodyさん
垢版 |
2007/11/24(土) 04:42:26ID:0kYCB2/U
やたーダウソツールで画像に底引き網をかけてる奴を
.htaccessに放り込むスクリプトができたよー(^o^)ノ
0811nobodyさん
垢版 |
2008/01/08(火) 01:01:23ID:hTVbQiHi
0812nobodyさん
垢版 |
2008/03/16(日) 13:10:53ID:wXI+Q9fC
0813nobodyさん
垢版 |
2008/03/22(土) 08:30:06ID:???
すべてのアクセスを拒否れば負荷はほとんどなくなるアルよ。
0814nobodyさん
垢版 |
2008/04/24(木) 08:07:46ID:Ey7r9OAL
次のものは負荷はかかるでしょうか?

・ランキングは使わないが登録人数が300人を超すCGIゲーム(50分おきに送信)
・FLASHやJAVAを表示するCGI(1個約2MB、合計12個を1つずつ表示)
0818nobodyさん
垢版 |
2015/01/01(木) 18:10:33.33ID:3Aike0jC
公明党ならきっとやってくれる、宗教法人課税の導入
0819nobodyさん
垢版 |
2015/11/02(月) 10:25:00.04ID:QbuLzB/f
主食の

魚沼産コシヒカリ
A5のサーロイン
大間のマグロ
高級メロン

の軽減税率をお願いしますねwww
0820nobodyさん
垢版 |
2015/11/06(金) 18:31:31.04ID:tDSzu+Xy
転職時の注意事項。
下記の条件が全て当てはまる会社にご注意下さい。

・IT系 in Tokyo
・転職会議で2.5点
・転職会議の「その他>2ch情報」の欄で過去の労基2chスレが表示される
0821nobodyさん
垢版 |
2017/12/30(土) 12:57:08.26ID:YhlYw6jg
誰でも簡単にネットで稼げる方法など
参考までに、
⇒ 『半藤のブブイウイウレレ』 というサイトで見ることができます。

グーグル検索⇒『半藤のブブイウイウレレ』

TM7C0LN4KO
0822nobodyさん
垢版 |
2018/06/21(木) 10:09:14.47ID:VtSVJLaY
プログラミングを誰でも習得できる方法は、「前場アキドルのプログラミングマスター方法」というブログで見られるらしいよ。ネットで調べると見られるらしいです。

AKH0N
0824nobodyさん
垢版 |
2023/01/21(土) 22:10:26.78ID:???
ただ今制限を設けております。
0825nobodyさん
垢版 |
2023/08/10(木) 03:54:28.99ID:???
プハァー ~~-v( =´o`=) 。o 〇 ○
0826nobodyさん
垢版 |
2023/10/12(木) 17:24:00.63ID:???
残念だったな!!俺はブリーフ派だ」   
レスを投稿する


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