- ベストアンサー
CとPerlどれくらい違うか?
すでにPerlで書いてあるCGIを C言語で書き直そうか検討中です。 そこで質問なのですが・・・ (1)「CのCGIは速い」とよく書いてありますが、 どれくらい速くて、どれくらいサーバの負担を軽減できるのでしょうか。 (2)実際に計測する方法はありますか?
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
(1) の質問にお答えします。 10万までの素数探索プログラムを実行してみました、 PERL 15’14” C++ 40” と 約1/20でした。 処理系や処理内容によって結果は異なりますが、コンパ イラーとインタープリターの差は歴然としています。
その他の回答 (2)
- nazenani
- ベストアンサー率44% (4/9)
mod_perlが使える環境でしたら、Perl/CGIを手直しして利用した方が実行速度が 速い場合もあります。 簡単な処理の要求がたくさんくるような処理でしたら、組込みモジュールを使った 方が効果が大きいです。実際の実行より、起動のオーバヘッドにとられてしまうためです。 サーバー負荷も軽くなります。 CGIじゃなくなってしまいますけど。
補足
そうですね。考えてみたんですが チャットのように短時間に大人数でアクセスするCGIなので、メモリを食うmod_perlはまずいかな、と思いました。
- madman
- ベストアンサー率24% (612/2465)
(1) どれくらいは、計測したことがありませんのでわかりませんが、 PerlはShellScriptなので、ソースコードを解析しながら実行されます。 一方Cでかかれたものは直接実行するため高速といわれています。 それよりもJAVAサーブレットのほうが高速です。 (2) サーバ内で重い処理、数万回のループをしながら内部で通知演算(a=a+1とか)を繰り返し、実効開始から終了までの時間差を比較。またそのときにCPUの負荷を確認。すれば計測できるでしょう。
お礼
ありがとうございます。 どこでも「速い」とは書かれているんですが、実測が わからなかったので質問させていただきました。 別にCGIでなくても、普通の計算を比較すればよかったんですね。
お礼
ありがとうございます。 私もやってみました。ぜんぜん違いますね。 これからはCで書こうとおもいます。 テキスト処理が・・・(T_T)ですが。