開発言語選びの一助に
スラッシュ・ドット・ジャパンで、こんなストーリーができていた。
http://slashdot.jp/science/article.pl?sid=09/12/22/0426213
「PHP はエコじゃない?」と題して、Facebook では、コードを PHP から C++ に書き直すことで、サーバー台数を2万5千台から、2千5百台(十分の一)に減らせるのではないかという試算が紹介されている。
もちろん、スラッシュ・ドット・ジャパンであるから、C++ のほうが保守性が悪いというのは当然に分かった上での議論である。
おそらくは今年一番の秀逸なコメント
http://slashdot.jp/science/comments.pl?sid=479064&cid=1692702
があったり、また、PHP コンパイラの性能が良くない理由が説明されていたりと、なかなか興味深いスレッドになっている。
そもそも PHP コンパイラなんて存在すら知らないか、あるいはあっても興味の無い人のほうが普通だろうし。
そんな中で、これだけは自分のブログに貼り付けてとっておきたいと思ったリンクがこれ。
http://shootout.alioth.debian.org/u32q/code-used-time-used-shapes.php
色々な言語で、色々なベンチマークプログラムをコーディングし、走らせ、ソースの大きさと、実行性能を2次元のグラフにプロットしている。
このグラフ、縦軸と横軸に統計上のトリックが含まれているので、その点にはよく注意して見なくてはいけない。
グラフの下半分は大した差ではないが、上半分は致命的に大きな差だ。
ざっと見た感じでは、やはり最近はやりの軽量言語、Ruby だとか Python だとかは、ソースを短く仕上げられるようだ。
これは保守性の高さにつながる。
また、Java や C、C++ は実行速度に関しては極端な苦手分野が無いのがいい。
実際にプログラムを動かしてみて、「あれ? こんなに遅いはずではなかったのに」ということがない。もちろん、うまくプログラムをチューニングできればという前提はあるが。
基本的に軽量言語で開発をして、実行速度がボトルネックになりそうな部分だけ C なり、C++ を使うという、昔ながらの方法(UNIX のシェル・プラグラミングのようなもの...シェルスクリプトは軽量言語と言うには貧相すぎるが)がやはり良いようだ。
Lua が意外と健闘していたり、Lua JIT なるものの存在を知ったりと、他にも役に立つ情報が色々とこのページにはある。
ロジックの記述という部分だけで考えれば、Pascal もまだまだ捨てたものではない。
課題によっては、C よりも C++ のほうが速いことがあるというのも意外だし、C よりも C++ のほうがソースが長くなるというのも意外だ。
まあ、あくまでこれらのグラフは大雑把な指標でしかないので、変な宗教論争の材料にしてはいけないということだけは、肝に銘じておかなくてはならない。
http://slashdot.jp/science/article.pl?sid=09/12/22/0426213
「PHP はエコじゃない?」と題して、Facebook では、コードを PHP から C++ に書き直すことで、サーバー台数を2万5千台から、2千5百台(十分の一)に減らせるのではないかという試算が紹介されている。
もちろん、スラッシュ・ドット・ジャパンであるから、C++ のほうが保守性が悪いというのは当然に分かった上での議論である。
おそらくは今年一番の秀逸なコメント
http://slashdot.jp/science/comments.pl?sid=479064&cid=1692702
があったり、また、PHP コンパイラの性能が良くない理由が説明されていたりと、なかなか興味深いスレッドになっている。
そもそも PHP コンパイラなんて存在すら知らないか、あるいはあっても興味の無い人のほうが普通だろうし。
そんな中で、これだけは自分のブログに貼り付けてとっておきたいと思ったリンクがこれ。
http://shootout.alioth.debian.org/u32q/code-used-time-used-shapes.php
色々な言語で、色々なベンチマークプログラムをコーディングし、走らせ、ソースの大きさと、実行性能を2次元のグラフにプロットしている。
このグラフ、縦軸と横軸に統計上のトリックが含まれているので、その点にはよく注意して見なくてはいけない。
グラフの下半分は大した差ではないが、上半分は致命的に大きな差だ。
ざっと見た感じでは、やはり最近はやりの軽量言語、Ruby だとか Python だとかは、ソースを短く仕上げられるようだ。
これは保守性の高さにつながる。
また、Java や C、C++ は実行速度に関しては極端な苦手分野が無いのがいい。
実際にプログラムを動かしてみて、「あれ? こんなに遅いはずではなかったのに」ということがない。もちろん、うまくプログラムをチューニングできればという前提はあるが。
基本的に軽量言語で開発をして、実行速度がボトルネックになりそうな部分だけ C なり、C++ を使うという、昔ながらの方法(UNIX のシェル・プラグラミングのようなもの...シェルスクリプトは軽量言語と言うには貧相すぎるが)がやはり良いようだ。
Lua が意外と健闘していたり、Lua JIT なるものの存在を知ったりと、他にも役に立つ情報が色々とこのページにはある。
ロジックの記述という部分だけで考えれば、Pascal もまだまだ捨てたものではない。
課題によっては、C よりも C++ のほうが速いことがあるというのも意外だし、C よりも C++ のほうがソースが長くなるというのも意外だ。
まあ、あくまでこれらのグラフは大雑把な指標でしかないので、変な宗教論争の材料にしてはいけないということだけは、肝に銘じておかなくてはならない。
この記事へのコメント