2016/07/02(土) [n年前の日記]
#1 [prog] プログラミング言語のベンチマークを載せてるサイトがあった
昨日、RubyとPHPの処理速度の差について疑問が湧いたものの、何を測定したらいいのかで悩んでしまってアレだったのだけど。
その後もググっていたら、各プログラミング言語のベンチマークを大量に載せてるサイトに遭遇。自分が知らなかっただけで、おそらくは有名なサイト、なのかもしれないなと…。載ってる量がスゴイ…。
_The Computer Language Benchmarks Game
その後もググっていたら、各プログラミング言語のベンチマークを大量に載せてるサイトに遭遇。自分が知らなかっただけで、おそらくは有名なサイト、なのかもしれないなと…。載ってる量がスゴイ…。
_The Computer Language Benchmarks Game
◎ 「Rubyと比べてPHPは重い」は真か偽か。 :
Ruby と PHP の比較ページも見れました。わざわざ自分でベンチマークを取る必要は無かった。このページを見れば一目瞭然でしたな…。
_PHP_vs Ruby (64-bit Ubuntu quad core)
ざっと眺めてみた感じでは…。やっぱり Ruby って PHP よりはるかに遅い。全然遅い。大体2倍〜5倍ほどRubyのほうが遅い。この結果だけを見ると「『Rubyに比べてPHPは重い』は偽」って話になりそうだなと。
ところが。コレ、2010年頃は逆の結果が出ていたようで。
_プログラミング言語の速度とアプリケーションの速度がいかに関係ないかがわかるグラフ - kなんとかの日記
どうやらその頃は、PHP のほうが Ruby よりも3倍ぐらい遅かった模様。とにかくPHPは遅かった。ありとあらゆる言語と比べても PHPは遅かった。もし、その頃に、「Rubyに比べてPHPは重い」と言ってたら「そうですね」「仰る通り」って話になってたんだろうなと。
Ruby にしろ PHP にしろ、バージョンが上がるたびに、最適化が進んだり、動く仕組みがガラリと変わったりしてるので、そういうことにもなるのでしょう。つまり…
_PHP_vs Ruby (64-bit Ubuntu quad core)
ざっと眺めてみた感じでは…。やっぱり Ruby って PHP よりはるかに遅い。全然遅い。大体2倍〜5倍ほどRubyのほうが遅い。この結果だけを見ると「『Rubyに比べてPHPは重い』は偽」って話になりそうだなと。
ところが。コレ、2010年頃は逆の結果が出ていたようで。
_プログラミング言語の速度とアプリケーションの速度がいかに関係ないかがわかるグラフ - kなんとかの日記
どうやらその頃は、PHP のほうが Ruby よりも3倍ぐらい遅かった模様。とにかくPHPは遅かった。ありとあらゆる言語と比べても PHPは遅かった。もし、その頃に、「Rubyに比べてPHPは重い」と言ってたら「そうですね」「仰る通り」って話になってたんだろうなと。
Ruby にしろ PHP にしろ、バージョンが上がるたびに、最適化が進んだり、動く仕組みがガラリと変わったりしてるので、そういうことにもなるのでしょう。つまり…
- 昔は、Rubyと比べるとPHPは重かった。
- 今は、Rubyと比べるとPHPは速い。
◎ 言語の速度だけ気にしても意味がないっぽい。 :
しかしですね。
_前述の記事
によると、「○○は遅いからダメ」と即断できるほど単純な話でも無いようで。
言語の処理速度ではなく、Ruby、あるいはPHPで書かれたアプリの処理速度を比較してみると…。PHP自体はRubyよりはるかに遅いはずなのに、アプリの測定結果では、何故かPHPで書かれたアプリが最速の結果を叩き出してたそうで。おかしいじゃないですか。めちゃ遅い言語で書いた時が一番速い。どういうこと?
「言語の速度を気にしてみたところで実態に即してないよ」てな話は、そもそもRubyコミュニティ内からも過去に出ていて。
_Rubyist Magazine - Ruby 1.9 で Web アプリを想定したベンチマークをとってみた
高速化されたはずのRubyの新バージョンと、高速化されてないはずのRubyの旧バージョンを比較したら、たしかに処理が速くなった部分もあるのだけど、逆に遅くなってしまったところもありますよ、と。「バージョンが上がって速くなったぞ」と喜んでたらソレは甘いよ、と。
Ruby という一つの言語の、各バージョンでの比較事例ですら、そういう結果が出てくるのだから…。他言語との比較や、フレームワーク毎の比較ともなれば、こりゃますますわけがわからんことになってくるなと。
つまるところプログラミング言語に関しては、一概に「○○は遅い」「○○は速い」「だから○○はダメだ」「○○は素晴らしい」と安易に言えないのだろうなと。
とは言え。
言語の処理速度ではなく、Ruby、あるいはPHPで書かれたアプリの処理速度を比較してみると…。PHP自体はRubyよりはるかに遅いはずなのに、アプリの測定結果では、何故かPHPで書かれたアプリが最速の結果を叩き出してたそうで。おかしいじゃないですか。めちゃ遅い言語で書いた時が一番速い。どういうこと?
「言語の速度を気にしてみたところで実態に即してないよ」てな話は、そもそもRubyコミュニティ内からも過去に出ていて。
_Rubyist Magazine - Ruby 1.9 で Web アプリを想定したベンチマークをとってみた
高速化されたはずのRubyの新バージョンと、高速化されてないはずのRubyの旧バージョンを比較したら、たしかに処理が速くなった部分もあるのだけど、逆に遅くなってしまったところもありますよ、と。「バージョンが上がって速くなったぞ」と喜んでたらソレは甘いよ、と。
Ruby という一つの言語の、各バージョンでの比較事例ですら、そういう結果が出てくるのだから…。他言語との比較や、フレームワーク毎の比較ともなれば、こりゃますますわけがわからんことになってくるなと。
つまるところプログラミング言語に関しては、一概に「○○は遅い」「○○は速い」「だから○○はダメだ」「○○は素晴らしい」と安易に言えないのだろうなと。
- どの言語を使って、どんな処理をさせるか。
- どの程度、その処理に特化して最適化させてあるか。
とは言え。
- ソースを最適化しまくった際に、言語の処理速度の差が最後に響いてきて、望むパフォーマンスが得られない、ということはありえるだろうから、凄いプログラマーさんがカリッカリにチューンしたあげく「○○ではダメだ」と結論付けたなら、それは妥当な判断と言えそうだし。
- 逆に、言語が速いおかげで、めちゃくちゃなソースを書いていても、そこそこの速度で動いてしまって誤魔化せちゃう時だってありそうだし。
◎ アウトプットは大事。 :
何にせよ、「Rubyに比べてPHPは重い」的な一文を書いてくれた方には感謝したい気分。
その一文を見かけて「えっ?」と思ったから、こうしてググって「なるほどなあ…」と思えたわけで。その一文が無かったら、こういう機会には恵まれなかった。おかげで勉強になりました。ありがたや。 *1
つまりは、ポエムでも何でもいいからアウトプットは大事、ってことだろうと改めて思った次第。
てな感じのポエムをこうしてメモっておくのです。
その一文を見かけて「えっ?」と思ったから、こうしてググって「なるほどなあ…」と思えたわけで。その一文が無かったら、こういう機会には恵まれなかった。おかげで勉強になりました。ありがたや。 *1
つまりは、ポエムでも何でもいいからアウトプットは大事、ってことだろうと改めて思った次第。
てな感じのポエムをこうしてメモっておくのです。
[ ツッコむ ]
以上です。