CGIの動作を速くするには?

[上に] [前に] [次に]
Perl初心者 1999/07/27(火) 16:37:18
CGIの動作を速くするコツはありますか?
また、ページの表示を遅くする原因になるタグには
どんなものがありますか?
速さを調べるのにプロファイル?なるものがあるそうなのですが
UNIXを全然知らない上に、
Perlそのものの使い方も良く知らないので困っています。
また、Perlの本とかも持っていません。
お願いします。

ウンジャマラミー 1999/07/27(火) 17:50:53
>CGIの動作を速くするコツはありますか?
ループ処理を極力減らすとか...
無駄な処理を見つけて効率良く...(簡単なようで結構大変)
サーバが高性能になれば早くなるけど。(冗談です)

>速さを調べるのにプロファイル?なるものがあるそうなのですが
UNIXのコマンドにprofというのが有りますが、これのことでしょうか?
私はPerlをやったことはないですが、Perlには使えないのでは?
Cのオブジェクトファイルが対象のはず。(間違ってたらごめんなさい)

>また、ページの表示を遅くする原因になるタグには
<IMG>とか<TABLE>が代表的でしょうか。
<IMG>はサイズ(WIDTH/HEIGHT)指定してやると若干表示が速くなる。
<TABLE>でかいテーブルはCOL属性で列数を指定する。
他にも沢山あると思うけど、思いつきません。

zizz... [HomePage] 1999/07/27(火) 18:18:35
> CGIの動作を速くするコツはありますか?
サーバーがApacheであれば、mod_perlを導入すると、Perlで書いてあるCGIは速くなると言われています。
私は未確認。
って言っても、Perl初心者を名乗る人には無理でしょうが。

> また、ページの表示を遅くする原因になるタグには
> どんなものがありますか?
そもそもCGIを使いすぎる事が遅くなる限界の一つです。
なるべくCGIを使わないと速くなります。

> Perlそのものの使い方も良く知らないので困っています。
> また、Perlの本とかも持っていません。
O'Reillyのラクダ本でも読んで勉強しましょう。

Perl初心者 1999/07/27(火) 19:05:09
ウンジャマラミーさん
>ループ処理を極力減らすとか...
LOGファイルの中身を分解する時とか、
同じタグを連続して出力する時なんかにしか使ってませんが。
使わなくても良い場合は使わない方がいいですか?

zizz...さん
サーバーはApacheだと思います。
導入の仕方を教えていただけるでしょうか。

>O'Reillyのラクダ本でも読んで勉強しましょう。
うっ、5000円ぐらいしたような・・・。

hiro-kim 1999/07/27(火) 20:25:00
動作が遅くて困っているWebページ・CGIスクリプトが
具体的にあって,その改造を考えているという質問なのですか?

実際に動かしていないプログラムの速い遅いを気にするというのは変ですから。
試してみたら運用上べつだん問題はなかった,という場合もままあることですし。

B-Cus 1999/07/27(火) 21:32:32
こういう質問って、ほとんどの場合
 ・いろんなコーディングをして、どれが一番速いか試してもいない
 ・速度を測ってもいない
 ・本も買っていない
なのよね。それなのに「速くする方法はないですか?」って、ちょっと
甘いんじゃないって感じ。高速化のノウハウなんて一言で言える
わけないじゃん。
# こういうデータが〜個あって、これを〜というコードで読み込んで
# るんですが、〜秒もかかってしまいます。〜という書き方にしても
# ほとんど変わりません。どうすれば速くなるんでしょうか、という
# 質問ならともかく。

ちなみにperlのプロファイラはDPorfってのがあります。
ラクダ本にも載ってます。ここの過去ログにも載ってるかもね。

zizz... [HomePage] 1999/07/27(火) 22:37:03
> サーバーはApacheだと思います。
そんなにあやふやで大丈夫なのでしょうか?
Apacheをいじろうと思ったら、サーバーの管理者でないといけないと思うのですが。

> 導入の仕方を教えていただけるでしょうか。
The Apache Software Foundation
http://www.apache.org/
で調べてください。

ウンジャマラミー 1999/07/27(火) 23:42:32
>ループ処理を極力減らすとか
は、ループの中でする処理を極力へらすという意味です。(念のため)
要するに効率良く処理しましょうということでして、
例えばループ処理の中で、1レコード読んで散々処理した挙句、
フラグが立ってないから書かない。→次のレコードを処理。
なんてするなら、1レコード読んだとき最初にフラグをチェックして、
さっさと次のレコードを処理したほうが早いですよね?
(まーこれはかなり極端な例ですけど)
プログラムの性能を出す作業は一番大変。(デバックのほうがまだまし)
そうそう、Cが使えるなら、そっちでコーディングすれば早くはなると
思いますけど...
(注意:コーディングのしかた次第ね)

忠告するだに 1999/07/29(木) 19:17:41
パフォーマンス・チューニングはプロの領域です。
言語仕様やデータ属性、システム環境を熟知して(経験があって)初めて
トライできる世界です。
Perl以外の言語、例えばC言語、BASIC、COBOL、FORTRAN、…
どれかひとつでも言語を使いこなせればPerlでも恐れることはありません。
初めての言語がPerlのようですから、Perlを使いこなせてからパフォー
マンス・チューニングに着手したほうがPerl初心者さんのためになると
思います。スキルアップしてからこの手の質問をされることを希望します。

[上に] [前に] [次に]