mieki256's diary



2016/07/02() [n年前の日記]

#1 [prog] プログラミング言語のベンチマークを載せてるサイトがあった

昨日、RubyとPHPの処理速度の差について疑問が湧いたものの、何を測定したらいいのかで悩んでしまってアレだったのだけど。

その後もググっていたら、各プログラミング言語のベンチマークを大量に載せてるサイトに遭遇。自分が知らなかっただけで、おそらくは有名なサイト、なのかもしれないなと…。載ってる量がスゴイ…。

_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 にしろ、バージョンが上がるたびに、最適化が進んだり、動く仕組みがガラリと変わったりしてるので、そういうことにもなるのでしょう。つまり…
  • 昔は、Rubyと比べるとPHPは重かった。
  • 今は、Rubyと比べるとPHPは速い。
そういう話になりそうだなと。

言語の速度だけ気にしても意味がないっぽい。 :

しかしですね。 _前述の記事 によると、「○○は遅いからダメ」と即断できるほど単純な話でも無いようで。

言語の処理速度ではなく、Ruby、あるいはPHPで書かれたアプリの処理速度を比較してみると…。PHP自体はRubyよりはるかに遅いはずなのに、アプリの測定結果では、何故かPHPで書かれたアプリが最速の結果を叩き出してたそうで。おかしいじゃないですか。めちゃ遅い言語で書いた時が一番速い。どういうこと?

「言語の速度を気にしてみたところで実態に即してないよ」てな話は、そもそもRubyコミュニティ内からも過去に出ていて。

_Rubyist Magazine - Ruby 1.9 で Web アプリを想定したベンチマークをとってみた

高速化されたはずのRubyの新バージョンと、高速化されてないはずのRubyの旧バージョンを比較したら、たしかに処理が速くなった部分もあるのだけど、逆に遅くなってしまったところもありますよ、と。「バージョンが上がって速くなったぞ」と喜んでたらソレは甘いよ、と。

Ruby という一つの言語の、各バージョンでの比較事例ですら、そういう結果が出てくるのだから…。他言語との比較や、フレームワーク毎の比較ともなれば、こりゃますますわけがわからんことになってくるなと。

つまるところプログラミング言語に関しては、一概に「○○は遅い」「○○は速い」「だから○○はダメだ」「○○は素晴らしい」と安易に言えないのだろうなと。
  • どの言語を使って、どんな処理をさせるか。
  • どの程度、その処理に特化して最適化させてあるか。
そのあたりで結果はコロコロ変わってくるから迂闊な判断は下せない、ということだろうと。「モビルスーツの性能の違いが戦力の決定的差ではないということを…教えてやる!」ってヤツですかね。…いや、シャアは毎回負けそうになってたから、ちょっとこの台詞は合ってないのでは。どうなんだ。

とは言え。
  • ソースを最適化しまくった際に、言語の処理速度の差が最後に響いてきて、望むパフォーマンスが得られない、ということはありえるだろうから、凄いプログラマーさんがカリッカリにチューンしたあげく「○○ではダメだ」と結論付けたなら、それは妥当な判断と言えそうだし。
  • 逆に、言語が速いおかげで、めちゃくちゃなソースを書いていても、そこそこの速度で動いてしまって誤魔化せちゃう時だってありそうだし。
なので、「やっぱり速さは正義」と主張する人だって居るだろうなとチラリと思ったりもして。でも、ある程度経験を積んでる人ならアルゴリズムを見直すことで結果が劇的に変わった場面をいくらでも目撃してるはずだし、メンテナンスコストだって無視できない場面もあるだろうしで、結局は「ケースバイケースだよなー」てことになるのが大半、とも想像するのですが。…まあ、そのあたり人によって色んな考え方がありそうですわな。

アウトプットは大事。 :

何にせよ、「Rubyに比べてPHPは重い」的な一文を書いてくれた方には感謝したい気分。

その一文を見かけて「えっ?」と思ったから、こうしてググって「なるほどなあ…」と思えたわけで。その一文が無かったら、こういう機会には恵まれなかった。おかげで勉強になりました。ありがたや。 *1

つまりは、ポエムでも何でもいいからアウトプットは大事、ってことだろうと改めて思った次第。

てな感じのポエムをこうしてメモっておくのです。

*1: ただ、その元記事を覗いてみたら、自分が見かけたはずの元の文章がしれっと削除されてて無かったことになっててなんだかアレな気分に。そういう時は _打ち消し線 を使って消しといたほうが、読者にとっては正誤が分かって為になる、と思うのだけど、打ち消し線が使えないblogシステムもありそうだよな…。そういや、最近何故か見かけないよな…打ち消し線…。なんでだろ? 見た目がダサいから、かなあ…。

以上です。

過去ログ表示

Prev - 2016/07 - Next
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31

カテゴリで表示

検索機能は Namazu for hns で提供されています。(詳細指定/ヘルプ


注意: 現在使用の日記自動生成システムは Version 2.19.6 です。
公開されている日記自動生成システムは Version 2.19.5 です。

Powered by hns-2.19.6, HyperNikkiSystem Project