★負荷軽減対策委員会(Perl、PHP)★
サーバ上にPerlやPHPを置く場合、何よりも重視しなければ
ならないのはサーバへの「負荷」。
負荷の高いCGIの使用は削除対象となるのが目に見えてます。
負荷を軽減させるにはどうすればいいか?
どういう書き方をすればいいか?
そんな委員会を開設しました。 >>535
ttp://boobar.hp.infoseek.co.jp/bench/print.txt PHPAってどのくらい早くなるんだろうか。
…測定はやはり浮動小数点か何かでやったらいいのだろうか。 PHPAってコンパイルキャッシュするだけか。
(´・ω・`)ケイゲンサレタノカ、ヨクワカンナカッタ。 >>540
PHPA、だいぶというかかなり違うようですが。 Turck MMCacheってのを使ってる奴いますか?
http://turck-mmcache.sourceforge.net/
能書きのとおりなら「最速」だそうだが。 >526
my 変数の方が速いの?
速度とか関係無しにstrict通るようにした方が良いだろうって話は置いといて。
>>544-545
ttp://boobar.hp.infoseek.co.jp/bench/scope.txt メモリにかかる負荷を測定するってことは出来ますかね。 ああ俺もそれ調べたい。
と言うかメモリ使用量とかどうやって調べてるんだろ…。
測定用のモジュールとかあるのかな? >>547-548
OS に依る。Linux や *BSD なら vmstat(8) とか top(1) で
別ターミナルから測定。 Winは無理っすか。
タスクマネージャみたいな監視ツール作ってログ取るようにすれば良いんかな…俺にゃ無理だけど…。 掲示板とかのスクリプトでHTMLを吐き出してそれにアクセスさせるってあるけど
ログファイル自体をHTMLにするって効率悪いよねぇ。 >>551
変換するのは1回だがアクセスされるのは何度もあるからいいのよ
逆にアクセス解析とかカウンターとかは変換するだけ無意味って言うか
ログなんて管理人しか見らんし。
今日、会社休みます。。。
会社の負荷を減らすためにネ! 堕スレ化したの?
でも、結局負荷軽減ってアルゴリズム考えた方が、
myがどーの、ヒアドキュメントがどーの、言うより意味あるよね。
言語選択ではある程度答え出てるし、このスレの意義って。。。 ちょっとした負荷を減らすために非常に参考になりました やっぱ表示速度を優先するか
サーバの負荷を優先するか。
きわどいな… > [ネットランナー]
> ベスト・オブ・ツール 2002
> サーバ&コミュニティ部門 掲示板CGIカテゴリー
> (祝) 金賞受賞
これはすごいことなの? >>570
「ネットランナー」って読んだことないです
とりあえずぐぐってみたら、
http://www.zdnet.co.jp/internet/runner/
> 超ヘビーユーザーになるためのインターネット活用誌
( ゚д゚)ポカーン >>571
厨房の愛読書だよ
賞もCGIの人気とか上っ面だけしか見てないで取ったりして、
作る人から見たらひどいソースのものも入賞してる うるせぇよ、年末の賞の審査員は有名サイト管理者を寄せ集めてるんだから、
それには文句いうの(・A・)イクナイ!! まあ、実際使う側からしてみれば、
たいていのやつがソースなんてどうでもいいんだがな。 ちょっと使ってみた
重(・A・)イイ!!
返信で無制限にファイルをアップロードできた
ファイルタイプの判別を拡張子のみでやってる
設定でどうにかなるかもしれないけど
とりあえず気になったのはこんなところ ていうか、コード酷すぎ。
配列の使い方すらわかってないように見えたし、変数全部グローバルだし。
関数の使い方も変だし。 ネットランナーとかいう雑誌のレベルがわかっちゃうな >>566
ネットランナーとやらでは金賞かもしれんがバグ放置はまずいと思うぞ。
常にSTDINから無条件で受け入れる仕様。
投稿記事がある状態で-Tを付けて起動するとrtn_gnrl.plで起こる無限ループ。
管理用ページ→基本設定→「記事ページ最大表示数」を空にして設定保存→掲示板へ戻ると
Lib_gnrl.plで0除算して二度と起動しなくなる事で負荷を下げるエレガントな仕様、等他大量。
>>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. こんなとこで陰口たたいててもしょうがない。
直接言ってやらないと。 Linuxサーバ、topで調べてみたら
毎晩httpdにCPU20〜89%くらい使用量があって
サーバが激重なんですが、原因がはっきりしない…
Apacheやネットワークの設定をどうにかこうにかして
負荷を減らす方法無いですか? >>587
どのようなスクリプトを実行させているか、で話は変わってくる。
>>587
非力なwwwサーバで山ほどモジュール組み込んで激重CGIでも置いてるんだろ >>589
2ショットチャットとか画像アップローダとか・・。
>>590
えーっとサーバは確かPenIVの2GB、RAM1GBだったかな。 PenIVの2GB
PenIVの2GB
PenIVの2GB
PenIVの2GB
PenIVの2GB すれ違いと言われたのでここにきました。
my($a,$b,$c);
とするのと
my($a);#コメント
my($b);#コメント
my($c);#コメント
と書くのでは、処理速度や負荷に差がありますか?
配布とかメンテを考えると後者で書きたいんですが。
全体で150KBくらいになるCGIソースで
処理によってはルーチンのうちのほんの一部しか
使わないという場合、
処理をライブラリにしてrequireするのと
全体が1ファイルなのとどっちが効率いいのでしょうか?
計測ってどうやってやるんですか?
でっかい実行ファイルを起動するのと
ちっちゃいのを起動してrequireするのと
どっちが軽いかという問題だと思うんですが。
>>606
負荷が気になるなら負荷を調べる方法ぐらい知っておいたほうがよろしいかと >606
そもそも、あなたの「軽い」ってどういう意味ですか? >>606
requireのとこまで来たら結局全部読み込まれるのではないかな?
処理順では通らない部分のrequireも
スクリプト内にあるとrequireされるんでしょうか?
requireを見つけてからrequireする? >>611
そんな簡単なことぐらい試せばわかるだろ #!perl
if ( 0 == 1 ) { require './存在しないスクリプト.pl'; }
exit;
一枚岩で作って、え〜となんだっけか名前わすれたけど
一回実行したらメモリー上にキャッシュして次回から高速実行するツール
あれ使ったほうが軽さという面では圧倒的(ただしCPU負荷)
回線負荷は変わらんし大概先に満杯になるのは回線帯域のほうだ
perl、phpの中でだろ?
共有鯖での利用を考えてる人もいるだろうし 7行プログラムってスレ、すごいねアレは。
でも、短くするために敢えて重い処理をしていることもあると思うんよ。
それでも短いから負荷は感じないわけだけれども。
単純に処理を軽くする以外にも、コードを小さくする負荷軽減もあるんやねぇ。 言ってること矛盾してるじゃん。
>短くするために敢えて重い処理をしている
>コードを小さくする負荷軽減もある
ドキュンやな。
翻訳を試みた。
ある処理をする際に
A: 複雑な処理をする組み込み関数を使う
B: 単純な処理をする組み込み関数をいろいろ組み合わせる
の2種類の方法があるとして
Aの負荷 < Bの負荷
ってこと? >>620 YES.
そういう場合もあるんじゃないかと思ったので。 HTTP/1.1 のチャンクコーディングを忘れてない?
試しにnph ソースを作って、Content-Length を送信するようにしたら、
チャンクコーディングされなかったけど、接続が毎回切れるみたい。
どっちが良いのか微妙っぽい。
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
たしかにコードは短くできるので試したところ
レスポンスが悪く、重くなった気がします
>>625
三項演算子使ってるだけでしょ、普通に使うけど。
レスポンスは落ちるのかなぁ? 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)マークのユダヤ教にでも、入信せよ!
Cで組め。手っ取り早く最速で負荷を極力少なくできる。
負荷を少なくするならまず、
データ構造とアルゴリズムを見直せ
次にCPUをグレードアップしろ
それでもダメならCか汗ブラで PHPって
Personal Home Page の略?