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

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

■ このスレッドは過去ログ倉庫に格納されています
0001ジークハルト ◆VUxx/EwNXI 02/10/15 10:33ID:ifgLRUyb
サーバ上にPerlやPHPを置く場合、何よりも重視しなければ
ならないのはサーバへの「負荷」。
負荷の高いCGIの使用は削除対象となるのが目に見えてます。
負荷を軽減させるにはどうすればいいか?
どういう書き方をすればいいか?
そんな委員会を開設しました。
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 [email protected]("\n")
end

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

eval 'なんかの処理';
print $@ if($@);
0525nobodyさん03/11/03 00:59ID:???
と言うかスレ違い以下略。
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:???
もういいから。わからないやつは黙っておけ。
0537nobodyさん03/11/07 05:19ID:???
>>535
ttp://boobar.hp.infoseek.co.jp/bench/print.txt
0538nobodyさん03/11/07 07:00ID:H74hevQp
>>537
へー結構差があるんだね。
0539(  _。。)_ バタ。 ◆eJlUd9keO2 03/11/07 09:15ID:???
PHPAってどのくらい早くなるんだろうか。
…測定はやはり浮動小数点か何かでやったらいいのだろうか。
0540(  _。。)_ バタ。 ◆eJlUd9keO2 03/11/07 14:43ID:???
PHPAってコンパイルキャッシュするだけか。
(´・ω・`)ケイゲンサレタノカ、ヨクワカンナカッタ。
0541nobodyさん03/11/07 19:01ID:???
>>540
PHPA、だいぶというかかなり違うようですが。
0542nobodyさん03/11/07 21:04ID:???
Turck MMCacheってのを使ってる奴いますか?
http://turck-mmcache.sourceforge.net/

能書きのとおりなら「最速」だそうだが。
0543(  _。。)_ バタ。 ◆eJlUd9keO2 03/11/08 16:35ID:???
>>541
全然実感できない つдT)
0544nobodyさん03/11/11 02:37ID:???
>526
my 変数の方が速いの?
速度とか関係無しにstrict通るようにした方が良いだろうって話は置いといて。
0545nobodyさん03/11/11 03:02ID:???
そりゃあ速いさ
シンボルテーブルに登録されないし
0546nobodyさん03/11/11 12:14ID:???
>>544-545
ttp://boobar.hp.infoseek.co.jp/bench/scope.txt
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:???
逆にアクセス解析とかカウンターとかは変換するだけ無意味って言うか
ログなんて管理人しか見らんし。
0554nobodyさん03/11/13 00:49ID:???
↓イケイケ
0555nobodyさん03/11/14 16:06ID:???
ID:???←こいつうぜえ
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:???
人類のお荷物を減らすために?
0560nobodyさん03/11/25 03:00ID:???
ミンナリストラ
0561nobodyさん03/11/27 00:12ID:fPk+Wuzv
堕スレ化したの?
でも、結局負荷軽減ってアルゴリズム考えた方が、
myがどーの、ヒアドキュメントがどーの、言うより意味あるよね。
言語選択ではある程度答え出てるし、このスレの意義って。。。
0562nobodyさん03/11/27 02:12ID:???
ちょっとした負荷を減らすために非常に参考になりました
0563nobodyさん03/11/27 10:02ID:???
ふかふか
0564nobodyさん03/11/27 23:39ID:???
ふかきょ〜〜〜ん!
0565nobodyさん03/12/01 11:39ID:???
やっぱ表示速度を優先するか
サーバの負荷を優先するか。

きわどいな…
0566nobodyさん03/12/01 11:41ID:???
おまいら、このファイルアップロード掲示板はどうよ
http://kenchin9.hp.infoseek.co.jp/fupbbs.html
http://kenchin9.hp.infoseek.co.jp/cgi-bin/fupbbs/bbs.cgi
0567nobodyさん03/12/01 13:36ID:???
サイトのセンスは最悪だな
0568nobodyさん03/12/01 14:07ID:E1CqoPVw
> [ネットランナー]
> ベスト・オブ・ツール 2002
> サーバ&コミュニティ部門 掲示板CGIカテゴリー
> (祝) 金賞受賞

これはすごいことなの?
0569nobodyさん03/12/01 14:16ID:???
>>566
宣伝ウザイ。あちこちマルチすんな!
0570nobodyさん03/12/01 14:17ID:???
>>568
ネットランナーだぞ?ネットランナー
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:???
一般人だとなんだっていうのよ?
0580nobodyさん03/12/02 20:01ID:???
俺らに責任はありません。
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:???
陰唇と陰口どっちが好きですか?
0585nobodyさん03/12/05 00:37ID:???
陰核
0586nobodyさん03/12/05 16:47ID:???
陰核を
  叩いてわたる(^^)
        585
0587nobodyさん03/12/07 10:59ID:kmAZpJfG
Linuxサーバ、topで調べてみたら
毎晩httpdにCPU20〜89%くらい使用量があって
サーバが激重なんですが、原因がはっきりしない…

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

>>590
えーっとサーバは確かPenIVの2GB、RAM1GBだったかな。
0593nobodyさん03/12/08 10:34ID:???
>>592
なんだ、ネタだったのか
0594nobodyさん03/12/08 11:01ID:???
騙りだろ
0595nobodyさん03/12/08 11:44ID:???
釣りだろ
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:???
陰唇と陰口どっちが好きですか?
0601nobodyさん03/12/10 12:01ID:???
著作権表示を消す
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の中でだろ?
共有鯖での利用を考えてる人もいるだろうし
0617nobodyさん04/02/02 09:09ID:???
ACP管理者
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の負荷
ってこと?
■ このスレッドは過去ログ倉庫に格納されています