★負荷軽減対策委員会(Perl、PHP)★
■ このスレッドは過去ログ倉庫に格納されています
0001ジークハルト ◆VUxx/EwNXI
02/10/15 10:33ID:ifgLRUybならないのはサーバへの「負荷」。
負荷の高いCGIの使用は削除対象となるのが目に見えてます。
負荷を軽減させるにはどうすればいいか?
どういう書き方をすればいいか?
そんな委員会を開設しました。
0342あぼーん
NGNG0343鷹
03/05/29 00:29ID:KW4sDDhuこのように一気に計算させるのと、
いくつもに分けて計算させていくのでは
負荷は変わるのでしょうかね?
変わるのならどちらが軽いと思いますか?
0344nobodyさん
03/05/29 00:52ID:???追記の場合、元のファイルの大きさはほぼ影響しない。
Cをやっている人間ならわかる(はず)だが、
追記と言うのは、ハードディスク上のファイルの終端を探し出して、
そこから新たなデータを埋めて行き、最後にファイルの大きさを示す数値を変更する作業だ。
従って、ファイルの終端を探し出す作業だけが、ベンチマークに影響する。
0345nobodyさん
03/05/29 00:54ID:???メモリの占有率を調べたいなら、そういうソフト入れてベンチマーク取ればわかる。
そして結果を発表すると皆から感謝される。
むしろ、その式は人間が見やすいかどうかを考慮した方がいいと思う。
0346nobodyさん
03/06/01 05:17ID:q1DFdt/M1.printを使い一行ずつ出力
2.ヒアドキュメントで出力
3.別ファイルを作り読み取らせて出力
3は後々便利そうだけど、負荷が気になる…。
0347nobodyさん
03/06/01 07:32ID:???0349nobodyさん
03/06/01 11:08ID:???>3.別ファイルを作り読み取らせて出力
>3は後々便利そうだけど、負荷が気になる…。
じゃあ外部ライブラリとかあまり使わない方がいいよ。CPANもね。
0350nobodyさん
03/06/01 12:28ID:???1.出力処理が遅い。
2.出力処理は早い。
3.良識ある人間のやること。
一般に、メモリ占有量の低いものの方がウェブには向いているよ。
0352nobodyさん
03/06/01 14:21ID:???それよりも、トラフィックを一番に考えてる俺は間違ってますか?
0353nobodyさん
03/06/01 16:03ID:j4GGBbHWどうもです。
0354nobodyさん
03/06/01 16:59ID:???私も処理速度を優先させるべきだと思うねぇ。
というか、気にするほど大して変わらない。
基地外なほど膨大なデータを扱うならまだしも。
0355nobodyさん
03/06/01 23:12ID:???鯖を用意してやるなら、保守性を一番においても問題ないと思う。
0356nobodyさん
03/06/01 23:24ID:8+Lq3hlg>想定同時アクセス1000
これって小さいの? 秒間同時アクセス数1000ってことだよね?
0357nobodyさん
03/06/02 02:48ID:???大きなプロセスは常駐させてローカルソケットでCGIと通信してCGIは小さく作る、
データベースは下手に使わない、巧く使える場合にだけ使用する。
0358nobodyさん
03/06/03 01:39ID:???サーバーがつんでるメモリーの量によってどっち優先かは変わると思われ。
メモリー使い切ったらswapのオーバーヘッドがかかってかえって遅くなるし。
まあ、最近のサーバーはメモリーを湯水のように持っているからそんなこと考える必要ないのかな?
0359nobodyさん
03/06/03 05:54ID:+XIKXuw20361nobodyさん
03/06/03 12:08ID:Sjj3JYUN共有鯖ならいくらメモリ積んでいようと割り当てられるのは
微々たるもの
0363nobodyさん
03/06/03 21:58ID:+XIKXuw2早速やってみたところかなり速くなりました。
でもサイズが2kちょいから800kほどに...
0365364
03/06/03 22:22ID:???0366nobodyさん
03/06/05 20:39ID:???perlcc だと1割くらいじゃない?
0368nobodyさん
03/06/20 01:47ID:???理由は説明しなくてもわかるよね?
Yes she does!
PHP のメーリングリストなんかでも、
速度を少しでも稼ぎたいときの小技として紹介されることがあるね。
0373nobodyさん
03/06/25 18:56ID:???ひとつひとつルーチン毎にファイルを分けて、
一度に呼び出す方が負荷が大きいですか?
0374nobodyさん
03/06/25 22:26ID:???漏れもそれ思うんだが、ファイルをまとめようが分割しようが、
結局たいした大きさじゃないので、どっちもオンメモリってことない?
0375nobodyさん
03/06/25 23:20ID:???分割しても常に全部使うのなら、まとめた方がシステムコールが
減っていいと思う。
Perl だったら CGI.pm でやってる遅延読込が参考になるかと。
あれはあれでメモリ食いそうだけど。
0377あぼーん
NGNG0378nobodyさん
03/06/26 03:55ID:???別に必要になったところでuseすればいいんでないかい?
そうそう、SelfLoaderかまして起動時には一部しか読み込まれないように工夫しないといかんね。
0379あぼーん
NGNG0380あぼーん
NGNG0381nobodyさん
03/06/26 13:46ID:???function hoge() {
require('hoge.php');
}
hoge(); らなければ読まない。
Perlも同じく。
0382nobodyさん
03/06/27 16:09ID:sG/tHFOoスクリプト自体軽くした方がいいんでしょうか。
0385あぼーん
NGNG0388nobodyさん
03/06/28 14:07ID:M/F9ZoCiでも少しは…。
↓以下ループ。
0389nobodyさん
03/06/28 14:11ID:jkMqlRkLってことは、少しは変わるんだ…。
0390nobodyさん
03/06/28 15:08ID:???0391nobodyさん
03/06/28 16:21ID:???0392nobodyさん
03/06/28 22:51ID:???0393nobodyさん
03/06/29 00:15ID:???そりゃ、数百Mとかのコメントとか入れてたら、
メモリへロードするのが遅くなるだろうが、
処理速度そのものは、何の影響もない。
0394nobodyさん
03/06/29 08:04ID:???コンパイル時に無視されて、コンパイル結果もキャッシュされる
わけなんだから、全く影響しないんじゃ?
0395nobodyさん
03/06/29 13:20ID:???コンパイル結果に反映されないのは当たり前
コンパイル時に無視するためには最低限の判定が必要
要はコメントかどうか判定するフラグが少ないに越したことがないのか
という話でしょ
0396nobodyさん
03/06/29 22:00ID:???負荷が掛からないのはどれ?
0398nobodyさん
03/07/01 16:46ID:67Ffrssk変数にデータを入れて、printで一気に出力するかどちらが負荷少ない?
それともヒアドキュメント使うか。
どれよ?
0399nobodyさん
03/07/01 19:31ID:???0400nobodyさん
03/07/01 19:43ID:???0402nobodyさん
03/07/01 20:04ID:3/m58fAfそうそう、オレも知りたい。結構悩むんだよなー。みんな
その辺の使い分けはどうしてるの?
printよりechoのが速いってのは聞いた事あるけどね。
0403nobodyさん
03/07/01 20:06ID:???0404403
03/07/01 20:14ID:???$|=1;print "";$|=0;とやるしかない?
0405nobodyさん
03/07/01 22:48ID:???変数作って一気に出力する。
エンコード自由に変換して掃き出せるようなものの場合はどうしてもこうなる。
ヒアドキュメントは
$aya=<<EOL;
あやや
あひゃひゃ
EOL
で変数ぶち込めるし。
0407nobodyさん
03/07/02 00:38ID:???うほっ
いい男!
";
これでいいだろ
0408nobodyさん
03/07/02 08:14ID:???mod_phpも同じだ。
>>401
速度は、
mod_perl > mod_php > CGI Perl > CGI php
の順。ちゃんと実験したサイト行って、見て来い。
0409404NOTFOUND
03/07/02 20:09ID:???>mod_phpも同じだ。
PHP可を謳っている鯖屋はmod_php可という意味で、CGI可(※)を謳っている鯖屋は、
CGI/Perl可という意味で謳っていると思うのだがどうだろうか?
CGI可に比べてPHP可の鯖屋が少ないのは事実だが、mod_Perlを使える
鯖屋を見た事がないのは、漏れの調べ方が甘いからなのか・・・
※)一般的にCGI=Perlという認識があるのでこのような書き方をあえてしたが・・・
つまり何が言いたいかと言うと、mod_php使える鯖がそんなに非一般的では
ないんではないかという事だ。
0410nobodyさん
03/07/02 21:32ID:???cgi版じゃない普通(というか一般的というか)のphpってこと?
0411nobodyさん
03/07/02 21:52ID:???適当な拡張子をApache::Registry上で
動くようにする事自体はむずかしくないんだけど
ユーザーのモジュールの名前空間に制限がかけれないので
userAが
use lib (/home/userA/lib/);
use myPackage;
としる状態で
userBが
use lib (/home/userB/lib/);
use myPackage;
とかしてくれちゃうと、動作がめちゃくちゃになってしまうので
ユーザーにmod_perlな環境を提供できません(´Д`;)
>>410
mod_phpでない場合(サーバー組み込みで無い場合)
「php対応(ただしコマンドライン版)」という表記をみかけます
0414nobodyさん
03/07/03 09:14ID:???ああいう非現実的な試行環境に統一して対照されても参考にできないよね、、
まだmsがやったベンチ結果のほうがdqnぽくない
PHP5のケース別ベンチやってくれんかな
個人では実験環境が作れないしzendの情報だけでは激しく不安だし、、
話は変わって、itboostのtips「効率的な処理」に、phpのループ構造は遅いから、
コールバック関数を繰り返し呼び出すとphpではなくcレベルでループが走ってくれるて
いいよってネタがあるけど、これはどうなん?
(あれはcountを一度にすれば大差ないような気もしつつ、、。
個人で実行速度を計測するといえば、ループ処理のことだと言ってもいいかと
おもうんだけど、これってphp特有の問題?
0416411
03/07/06 09:05ID:???ハンドラ好きにさせるのはもってのほかなので
Apache::RegistryかApache::PerlRunを提供するしかないと
おもうのですが、前述の問題があり、自分の知識内では
不可能と判断しています。
(他に良い方法がないか探してるのですが...)
>>414
FastCGIも、共有サーバだとデーモンプロセス上がりまくりで
現実的では無いような気がしますが^^;
0417nobodyさん
03/07/06 09:07ID:???>ああいう非現実的な試行環境に統一して対照されても参考にできないよね、、
どこのサイトを見てるんですか?
0418nobodyさん
03/07/06 13:26ID:???有名なサイトだよ。35の言語の25のベンチマークによる比較。
http://www.bagley.org/%7Edoug/shootout/
0419nobodyさん
03/07/06 13:33ID:???http://www.linc.or.jp/~takaaki/Family/takaaki/Labo/dynamic_page.shtml
0421nobodyさん
03/07/08 03:40ID:???http://member.nifty.ne.jp/hippo2000/perltips/javaperl.htm
このあたりかな?とか思ってました
0422山崎 渉
03/07/15 11:10ID:???__∧_∧_
|( ^^ )| <寝るぽ(^^)
|\⌒⌒⌒\
\ |⌒⌒⌒~| 山崎渉
~ ̄ ̄ ̄ ̄
0423nobodyさん
03/07/24 09:32ID:???0424nobodyさん
03/07/25 23:36ID:???0425nobodyさん
03/07/26 17:01ID:????>
<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:???0430nobodyさん
03/07/28 05:31ID:???明示的にする前者がやっぱ速いかな?特に変数が多いほど。
でも、PHPモードに入ったり抜けたりする負荷(と言えるかな?)を考えると前者のような気もする…
0431nobodyさん
03/07/28 11:41ID:???<html><head><title>'.$title.'</title></head>
';
これでいいべ
0432nobodyさん
03/07/28 16:40ID:???長い場合、echoを大量に書くわけにもいかんでしょ
HTMLのフッタ部分は定型に近いから?><?phpを使ってるんだけど
さほど変わらないのかなぁ・・・
0433nobodyさん
03/07/31 10:25ID:???http://www.php.net/manual/ja/language.basic-syntax.php
にもあるとーり結局内部的には echo で処理されてるから
あとは可読性の問題じゃないかねぇ。
0434山崎 渉
03/08/02 02:24ID:???( ^^ )< ぬるぽ(^^)
0435ぼるじょあ ◆ySd1dMH5Gk
03/08/02 04:52ID:???ピュ.ー ( ・3・) ( ^^ ) <これからも僕たちを応援して下さいね(^^)。
=〔~∪ ̄ ̄ ̄∪ ̄ ̄〕
= ◎――――――◎ 山崎渉&ぼるじょあ
0436nobodyさん
03/08/08 18:33ID:???遅いときはイライラするぐらい遅い。
普通こんなにバラツキがあるものなのですか?
0437あぼーん
NGNG0438nobodyさん
03/08/15 12:34ID:???新しいhttpdの子プロセス上がった時とかキャッシュがないからでは?
重そうなモジュールは起動時に読み込むようにするとかして
コンパイル時間短くしたら?
0439nobodyさん
03/08/20 12:11ID:???私の書き方が間違っているだけなんですかね?
0440nobodyさん
03/08/20 12:21ID:???mod_perl1.2使ってたとき、モジュールのキャッシュ無視して、別空間にロードされる場合も。
最近のバージョンで改善されているかどうかは不明ですが。
■ このスレッドは過去ログ倉庫に格納されています