トップページ⇒php
817コメント199KB

★負荷軽減対策委員会(Perl、PHP)★

■ このスレッドは過去ログ倉庫に格納されています
0001ジークハルト ◆VUxx/EwNXI 02/10/15 10:33ID:ifgLRUyb
サーバ上にPerlやPHPを置く場合、何よりも重視しなければ
ならないのはサーバへの「負荷」。
負荷の高いCGIの使用は削除対象となるのが目に見えてます。
負荷を軽減させるにはどうすればいいか?
どういう書き方をすればいいか?
そんな委員会を開設しました。
0219nobodyさん02/11/04 13:03ID:UUsMIZp7
厨行為がなくても負荷は掛かりやすい。
・同時プレイ人数が多い(多いところだと10人以上)
・ゲームという性質上、計算など処理量が多い。
チャットも上の性質を満たすが、それ+αなわけだ。
0220nobodyさん02/11/04 13:07ID:UUsMIZp7
でも、デフォルトのFFAの更新頻度は10分になっているから
それならば本来、そんなに負荷は掛からないはずなのだ。
ただ、最近CGIを全然知らない負荷を意識しない奴が
平気に「短い方が良いに決まってるじゃん」という
理由で更新頻度を30秒とかにしちゃってるから問題になってるわけだと思う。
0221あぼーんNGNG
あぼーん
0222nobodyさん02/11/04 15:10ID:Y3fUpfXy
異常にレベルの低い議論が続いてますね。
TOCでも勉強するといい
ボトルネック見極めないで憶測で議論しても意味ナイ
0223 02/11/04 16:29ID:???
ping -f pc.2ch.net
.
.
.
.
.
.
今日も快適だ
0224nobodyさん02/11/05 14:57ID:???
掲示板とか運営するならCGIはログ読み込み+書き込み、だけやらせて、
タグ付けはクライアントサイドでやらせる、

負荷軽減
0225nobodyさん02/11/05 15:00ID:???
>>202
全てのデータをXMLで吐かせておいて、
XSL+JavaScriptで表示、これで解決
0226nobodyさん02/11/05 20:27ID:???
>>224
そうするとかちゅーしゃ等を使うのが一番手っ取り早いね。
0227age02/11/06 08:44ID:???
Yahoo!メッセンジャー有料化だそうです
http://www.metalflame.com/mm/lovely_mm.htm
0228nobodyさん02/11/06 17:21ID:???
>>227 ブラチラ
0229age02/11/09 08:48ID:???
ブラチラで終了かよ!
0230nobodyさん02/11/09 11:56ID:E2/H+5gT
>>227はブラチラじゃないよ
0231nobodyさん02/11/09 12:07ID:IRpoTYp2
ブラクラ
0232nobodyさん02/11/14 16:08ID:???
ブラクラって何ですか?
体験させられはしたんで、何の略かを知りたいのでそ。

0233nobodyさん02/11/14 17:50ID:???
ブラでクラクラ
0234nobodyさん02/11/14 17:55ID:???
検索汁
0235nobodyさん02/11/14 20:19ID:???
>>234
そか、検索ね。アリガ�d。
ttp://www.coara.or.jp/~tkuri/BCC/faq.htmは、よかった。
browser crusher / crasherってなってるけど、crashなんてねーぞ。

023623502/11/14 20:28ID:???
いっけね。あったよ。crashの方がコンピュータがクラッシュするって
いつも使ってるやつね。crushは、もみつぶす。俺の英語力もとほほや。
逝ってくる
0237age02/11/15 09:16ID:???
データの転送量さえ少なければCGIの負荷ってかからないよね?
023823802/11/15 09:18ID:8BLO7GsJ
コバルトサーバ → CGI不向き
Pentium III    → CGI可
Pentium IV    → CGI最適

の図式で合ってる?
023923802/11/15 09:20ID:8BLO7GsJ
コバルトサーバ → CGI不向き
Pentium → CGI最適

と考えてよろしいか?
0240nobodyさん02/11/15 10:03ID:???
>>237 なわけねーだろ
0241nobodyさん02/11/15 11:40ID:???
>>238
Pentium使ってるCobalt serverはどうなるの
0242nobodyさん02/11/16 02:53ID:???
perlでHTMLとか吐くとき
ヒアドキュメント使うのと全部printで表示するのはどっちがいいんですか?
0243nobodyさん02/11/16 14:45ID:???
>>242
表示したい文字列を全て一つの変数に入れて、最後にprintする
0244nobodyさん02/11/16 16:47ID:???
>>243
お手軽だけどメモリバカ食いだねw
0245nobodyさん02/11/16 20:52ID:???
>>244
ところでHTML::Templateって結局>>243だよね。
$tmpl->output(\*STDOUT);
みたいにしてテンプレートに変数流し込むそばから
すぐprintできるとうれしい…。
0246nobodyさん02/11/17 12:14ID:YRaU2xF9
つーか
@RANKING = $RANKING[
sort {$tmp1[$b] <=> $tmp1[$a] or $tmp2[$b] <=> $tmp2[$a]
}
0 .. $#tmp1];
ってなperlの部分をphpになおしたいんだが
だれか教えてくれないでしょうか?
0247nobodyさん02/11/17 18:05ID:???
@tmp1 を主キー
@tmp2 を副キーにしてソートしてるだけのような。
0248nobodyさん02/11/18 04:29ID:???
>>214
FFAのPHP版がもう少しで
できそうです。
0249age02/11/18 11:06ID:???
>>248
神
0250nobodyさん02/11/20 18:27ID:???
神は禿げていた、、、と
0251nobodyさん02/12/22 15:32ID:/yTei76p
lkh
0252nobodyさん02/12/22 15:43ID:???
>>248
どうかね。できたかい?
0253nobodyさん02/12/23 01:32ID:???
漏れ様の貧弱なマシンではよォ、use DBI;で0.20[s]もオーバーヘッドがかかりやがる。

use Pg;で0.13[s]なんだ。。。

やっぱApacheDBIにしたほうがよさげ?
0254 ◆grDYeooZwg 02/12/23 13:38ID:IPdi8EVE
最近、ここのYomi-Searchを改造してPath Infoに対応させた。
ロボット型検索エンジンからの直リンクが多いので、デコード処理をしない分
負荷軽減になるとおもうけど、どうおもう?
0255nobodyさん02/12/24 16:19ID:???
>>252
じゃあこのスレにもひっそりと宣伝。現在配布に向けてテスト中。
あまり大々的にしてないので、参加者が少ないです。
もし暇な方とかいたらよろしく。
http://www.s55.net/~paka/
0256nobodyさん02/12/31 02:35ID:TxzAlG2p
>>255
PHPにしたからって普通の鯖屋が
「FFA、箱庭は禁止ですがPHP版であれば設置可能です」なんて
言うと思えんとこがつらいな。
0257nobodyさん02/12/31 11:13ID:???
>>255
例えば自分が設置しているS55netさんだと、
本来ゲームなどの高負荷CGIは+1000円になるのですが、
同じ料金のままにしてもらってます。

具体的に負荷をチェックしてみてくださいって言ってみるといいかもね。
それでも負荷が多かったら禁止されてもしょうがないし。
0258nobodyさん02/12/31 11:14ID:???
ああ、でもFFA禁止って言うのは負荷だけじゃなくて
改造による暴走の危険性も考えてのことかな・・・
そうするとつらいかも。
0259nobodyさん03/01/14 15:39ID:???
>>245
perldoc HTML::Template したら、

> You may optionally supply a filehandle to print to
> automatically as the template is generated. This may
> improve performance and lower memory consumption.
> Example:
>
> $template->output(print_to => *STDOUT);
>
> The return value is undefined when using the "print_to"
> option.

だって。エラー処理のことを考えたら、>>243 のやり方がいいとは思うけど。

http://member.nifty.ne.jp/hippo2000/perltips/html/template.htm はちょ
と古いね。
0260山崎渉03/01/15 13:39ID:???
(^^)
0261nobodyさん 03/01/17 23:14ID:???
あの、漏れもFFAを軽量化しようと改良してるところ。
メインの画面のhtmlとかをJavaScriptで生成して2回目からは
クライアント側でキャッシュできるかな?と
思ってますがかなり軽量できますかね?
0262nobodyさん03/01/25 16:11ID:gv57Iyhs
>>261
師匠、いくらプログラムをいじったってパソコンは軽くならないですよ。
0263nobodyさん03/02/10 00:29ID:???
>>262
質量保存の法則ですか?
0264nobodyさん03/02/10 11:12ID:???
電源から電気をもらっているわけで
HDの容量が変わると電荷の分増えたりしないのか?
0265nobodyさん03/02/16 11:56ID:???
>>264
んなこたーない。
0266nobodyさん03/03/01 17:02ID:???
2ショットサイト作成中なんですが、チャットってログはテキストより
SQLにした方が負荷は低いですか?
チャット自体はモジュールのPHPで動かす予定なんですが。
0267nobodyさん03/03/01 17:06ID:???
>>266
ログは多くても100件保存できればOKでしょ?
だったらテキストの方が良いに決まってる。
0268nobodyさん03/03/01 21:11ID:+zEIIVTI
>>266
チャットは
mod_perlで常駐させて
配列にログ入れて
ファイルアクセスをなくすと
めっちゃ早かったでつ。

んで、保存ログは20行以下に切り詰めて
ブラウザ側でJavaScript使ってログを保存・表示させていく方式が
よろしかろう・…というか、よろしかったでつ。

026926603/03/02 10:48ID:???
>>276
チャット一つあたりのログは精々10〜20件ぐらいですね。
他に管理者用のコソーリ覗き見スクリプト(ログ全件保存)ってのも
作ってあったりしますが^^;

>>268
mod_perlは普通に動くスクリプトをそのまま動かせるんだったら
試してみようとも思うんだが。お手軽さならPHPに流れちゃうね。
そういえば自分、JavaScriptは全然わけわかめだった^^;
0270ハッカ飴03/03/02 23:25ID:???
>>244
1ページ分を1つの変数に入れたとしてもせいぜい50KB。
たいしてメモリを食わないと思うんだがどうだろう?
0271nobodyさん03/03/03 15:53ID:???
辞典みたなものをCGIで作ろうと思ってるんだけど、データをHTMLで保存するか
ログファイルに保存して毎回CGIで表示するか迷ってる。
CGIサーバが5MBしか容量ないので保存データ量を節約したいけど負荷が気になる。
1日500件もアクセス無いはずだから別にいいかな?
0272nobodyさん03/03/10 14:42ID:e5Gc6Qds
>>271
辞典の更新頻度、検索の手段によるのでは
0273山崎渉03/03/13 17:03ID:???
(^^)
0274nobodyさん03/04/02 16:48ID:MBb6MhRw
質問です。

Windows2000
Apache 1.3.26 win32
ActivePerl 5.6.1

でCGIのテストをしているのですが、
CGIの負荷を数値等で表示してくれるツールってないですか?

今は、タスクマネージャーで見ているのですが、
もっと詳細に負荷の具合を調べたいのですが、

ご存じの方、よろしくお願いします。
0275nobodyさん03/04/03 00:43ID:u5AEaj7N
>>274
DProf を試してみたら?
0276山崎渉03/04/17 12:10ID:???
(^^)
0277山崎渉03/04/20 06:23ID:???
   ∧_∧
  (  ^^ )< ぬるぽ(^^)
0278nobodyさん03/04/23 00:06ID:eNBdthfp
あのー、
Perlで、myやlocalをほとんど使っていないってのは、
どのくらいの負荷要因でしょうか?ベスト1?
0279あぼーんNGNG
あぼーん
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を随時生成するのに切り替えるのも一つの
手かと。
0285あぼーんNGNG
あぼーん
0286あぼーんNGNG
あぼーん
0287わっしょい03/04/27 17:57ID:???
http://www.atmarkit.co.jp/flinux/special/php5/php5a.html
速くなるのでしょうか・・・?
0288nobodyさん03/04/27 23:41ID:???
>287 phpに速さを求めちゃイカン。
0289nobodyさん03/04/28 01:16ID:???
>>288
そう,PHPは実行速度より開発速度
0290nobodyさん03/04/28 23:00ID:???
Perlもそうだよ〜
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+
オブジェクト指向のプログラムは負荷軽減になるの?
0294nobodyさん03/05/02 06:55ID:???
ならない
0295nobodyさん03/05/02 10:25ID:???
>>291
DBM使え。簡単だぜ。
郵便番号ファイル(郵政省--いま何たっけ--の)で速度5倍だぜ。
http://www.ichikoro.com/webp/bk/00060.htmlのベンチマーク。
あれ、2Mくらいじゃなかったっけ?
0296nobodyさん03/05/02 11:29ID:???
>>288
そうそう。よほど非常識なことをしなければ、スクリプト言語で効率を考えるのはナンセンス。
0297nobodyさん03/05/02 15:38ID:???
>>296
>>295にあるように効率はいつも考えるべき。
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
そうかー、ちょっと反省。

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

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

あと、負荷軽減について詳しい本(の一部とか雑誌でも)ないでしょうか?
0300nobodyさん03/05/06 00:03ID:???
>>299
ラクダ本買っとけ。
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で動かしてもよーわからん。
0306あぼーんNGNG
あぼーん
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/
0311あぼーんNGNG
あぼーん
0312あぼーんNGNG
あぼーん
0313あぼーんNGNG
あぼーん
0314nobodyさん03/05/19 15:55ID:wUacqRGd
>>310
何が言いたいのかわからん。
0315nobodyさん03/05/19 16:11ID:wUacqRGd
>>310
すんまそん。
メモリ確保を解放するかしないかは分かります。
メモリ確保は○○○分で済むのか、○○○○○○分確保してしまうのかを聞きたいのです。
0316あぼーんNGNG
あぼーん
0317あぼーんNGNG
あぼーん
0318nobodyさん03/05/19 17:41ID:???
詳しく知りたかったら、Perlのソースを読むしかないと思うけど。
0319nobodyさん03/05/20 01:00ID:???
>>315
>>310 の記述を見ると、3バイト分しか確保しないように思えたけども。
■ このスレッドは過去ログ倉庫に格納されています