• ベストアンサー

Perlスクリプトについて

よく配布されている掲示板CGI等のPerlスクリプトの場合は、コンパイル(コンピュータ上で実行可能な形式に変換)とかできないのでしょうか?やっぱりC言語を勉強するしかないのかな?意味不明な質問でしたら申し訳ありません・・・。 今現在かなりスペックが低い自宅サーバ(Windowsサーバ)を利用していまして、少しでもサーバへの負荷を減らせることができればと試行錯誤しています。

質問者が選んだベストアンサー

  • ベストアンサー
  • moon_night
  • ベストアンサー率32% (598/1831)
回答No.2

Mod-Perl にすれば早くなるみたいですよ。

cocolink
質問者

お礼

回答ありがとうございました。 http://www.ee.e-mansion.com/~egami/postgre/#6 早速試してみようと思います!

cocolink
質問者

補足

mod_perl同様、SpeedyCGIもPerlをコンパイルして常駐させることが出来るそうですね。色々試してみる価値がありそうです!

その他の回答 (3)

  • Ethersky
  • ベストアンサー率71% (168/235)
回答No.4

> perl2exe等のコンパイルするためのツールは存在します。 > (http://www.indigostar.com) perl2exeは厳密にはコンパイルしていません。 exeの形式でperlスクリプトをまとめて入れておくだけで実際には実行時にコンパイルします。 その証拠にPerlのコア部分(コンパイラ)が入るので約700KBほどexeファイルが大きくなります。 (このコア部分はdllファイルとしてexeファイルとは分離させることもできます) perl2exeに似たものとしてPARというものもありますが、これも同様に実行時に始めてコンパイルされます。 しかも、PARの場合はZIPで圧縮しているだけなのでアーカイバソフトでZIP書庫として開けます。 (開くと元のPerlスクリプトが入っているのがわかります) で、PARの欠点は実行時に展開してからの実行になるので返って遅くなるのと、展開したファイルをテンポラリディレクトリに消さずに残していってしまうことです。 以上のことから、Perl2EXEもPARも、「あらかじめコンパイルして実行を早くする」のではなく「Perlがインストールされていない環境でPerlスクリプトを手軽に実行する」という用途のものといえます。

cocolink
質問者

お礼

参考になるご回答ありがとうございました。

回答No.3

>コンパイル(コンピュータ上で実行可能な形式に変換)とかできないのでしょうか? perl2exe等のコンパイルするためのツールは存在します。 (http://www.indigostar.com) ただ、動作速度が向上するか?というと、そうでもない感触です。(ほとんど同じ?!) perl未導入の機器でも動作できるなどが存在意義のような気がします。 たぶん、mod_perl化するのが、効果は大きいと思いますよ。 (若干のスクリプト修正は必要かもしれませんが・・) cで書き直すよりは、phpの方が手軽に移行していけるような気がします。 phpとmod_perlで、perlオプティマイザが考える時間が長いので、 動き出すまでの時間は、phpの方が早いでしょう。 ただ、複雑怪奇な処理をさせると、perlオプティマイザが賢いので、 最終的に、いい勝負だと思いますけどね。

cocolink
質問者

お礼

ご回答ありがとうございました。 みなさんから頂いた情報や、ネットで調べた情報を参考に対策を行いましたところ、半分以下まで負荷を下げることができました。現在はmod_perlで動作するよう改造中でして、更なる負荷減少が見込めそうです。古いパソコンでも設定次第でこんなにも変わるもんなんですね。皆様、本当に有難うございました。

  • MicroK2O
  • ベストアンサー率53% (33/62)
回答No.1

そもそもPerlという言語はインタプリタであり コンパイルする必要がないのが特長です。 PerlによるCGIの負荷が気になるようでしたら PHPを使ってみてはいかがでしょうか。 PHPもインタプリタ言語ですがPerl程負荷はかからなかったと思います。

参考URL:
http://www.google.com/search?hl=ja&lr=lang_ja&num=100&q=perl
cocolink
質問者

お礼

回答ありがとうございました。参考にさせていただきます。

関連するQ&A

専門家に質問してみよう