• ベストアンサー

CとPerlどれくらい違うか?

すでにPerlで書いてあるCGIを C言語で書き直そうか検討中です。 そこで質問なのですが・・・ (1)「CのCGIは速い」とよく書いてありますが、 どれくらい速くて、どれくらいサーバの負担を軽減できるのでしょうか。 (2)実際に計測する方法はありますか?

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

  • ベストアンサー
  • naka1007
  • ベストアンサー率50% (1/2)
回答No.2

(1) の質問にお答えします。 10万までの素数探索プログラムを実行してみました、 PERL 15’14” C++    40” と 約1/20でした。 処理系や処理内容によって結果は異なりますが、コンパ イラーとインタープリターの差は歴然としています。

Scholes_B
質問者

お礼

ありがとうございます。 私もやってみました。ぜんぜん違いますね。 これからはCで書こうとおもいます。 テキスト処理が・・・(T_T)ですが。

その他の回答 (2)

  • nazenani
  • ベストアンサー率44% (4/9)
回答No.3

mod_perlが使える環境でしたら、Perl/CGIを手直しして利用した方が実行速度が 速い場合もあります。 簡単な処理の要求がたくさんくるような処理でしたら、組込みモジュールを使った 方が効果が大きいです。実際の実行より、起動のオーバヘッドにとられてしまうためです。 サーバー負荷も軽くなります。 CGIじゃなくなってしまいますけど。

参考URL:
http://bitarts.jp/tech/linux/mod_perl117_install.html
Scholes_B
質問者

補足

そうですね。考えてみたんですが チャットのように短時間に大人数でアクセスするCGIなので、メモリを食うmod_perlはまずいかな、と思いました。

  • madman
  • ベストアンサー率24% (612/2465)
回答No.1

(1) どれくらいは、計測したことがありませんのでわかりませんが、 PerlはShellScriptなので、ソースコードを解析しながら実行されます。 一方Cでかかれたものは直接実行するため高速といわれています。 それよりもJAVAサーブレットのほうが高速です。 (2) サーバ内で重い処理、数万回のループをしながら内部で通知演算(a=a+1とか)を繰り返し、実効開始から終了までの時間差を比較。またそのときにCPUの負荷を確認。すれば計測できるでしょう。

Scholes_B
質問者

お礼

ありがとうございます。 どこでも「速い」とは書かれているんですが、実測が わからなかったので質問させていただきました。 別にCGIでなくても、普通の計算を比較すればよかったんですね。

関連するQ&A