答えて
http://benchmarksgame.alioth.debian.org/を参照してください。 Javaは非常に速く、Scalaはほぼ同じ速度です。 JRubyは10〜30倍遅くなります。 Groovyはslow tooです。
Java。
実際、ほとんどの場合、速度の差はごくわずかです。静的言語は動的言語より高速ですが、あまり多くはありません。
Javaは最速ですが、たいていは膨大な量です。 http://shootout.alioth.debian.org/を見て、JRubyとJavaを比較してください。 –
それをよく見てください。あなたが正しい。 –
バイトコードをコンパイルする言語は、JITを使用するJVMで同等に高速に実行されます。
groovyとrubyによる反射を大量に使用すると、普通のJavaに比べて遅くなります。しかし、JSR-292(http://jcp.org/ja/jsr/detail?id=292)によれば、Java 7の方がより良くなるはずです。 – vdr
私が知る限り、JRubyはインタープリタなので、 Rubyコードはバイトコードにコンパイルされません。余分な仕事の一部をJITが受け取りませんか? –
"Distill JRuby:JITコンパイラ" http://www.realjenius.com/2009/10/06/distilling-jruby-the-jit-compiler/ – igouy
Anthonyによれば、Javaは最も速い言語です。静的型付け(ジャワ、スカラ)と
言語は動的なもの(グルービー、JRubyの)よりも高速です。
あなたは何を比較しているのか注意する必要があります。 "それはあなたがそれをやっていることに依存している"と同様に、他の人もそれに言及していると言います。どうすればするのですか?
例えば、Scalaのような言語を使用すると、自然にあなたは、おそらくJavaで行う方法の周りに長い時間がかかるだろうイディオムやアルゴリズムを表現できるようにすることができます。これは、同じことをするときにScalaのパフォーマンスにマッチできないと言っているわけではありません。つまり、ある言語では別の言語での自然なイディオムと一致する醜い回避策になるかもしれません。 Scalaはスケーラビリティを念頭に置いて設計されています - それゆえ、その名前はJavaです)。言い換えれば
、パフォーマンスがアルゴリズムについて通常であり、しばしばアルゴリズムの選択は、表現のしやすさについてです。つまり、そのツールがJava、Scala、JRubyなどのいずれであっても(動的な言語が病的ではない静的な言語よりも速い場合は疑わしいが)
我々はまた、などを最適化する前に、プロファイリングについて話すことができたが、それが直接の質問に対応していません。もちろん、。
"スケーラはスケーラビリティを念頭に置いて設計されています - そのため、スケーラブルなスケーラビリティはスケーラビリティの意味ではないと思っています。プログラム "http://www.scala-lang.org/node/250 – igouy
私はそれが過負荷の言葉だと思うが、並列処理の明白な疑惑があった。並行アプリケーションを書くのを簡単にすることにより、 もちろん、それはすべてのタイプの問題に有用ではありません。 – philsquared
「並列処理の可能性は間違いありませんでした」 - あなたの心の中ではどこにリンクされているのですか? – igouy
私はそれがあなたがより速く何を意味しているのか、そしてパフォーマンスのためにどの程度言語が書かれているのかによると思います。
たとえば、数学的に集中的な処理を行っている場合、ScalaはJavaより高速です。
しかし、あなたはJavaで遅く、それが理にかなっているすべての場所で、最終的な使用の関数を避けるならば、あなたは私がインタビューで、最近言われていたものから、より高速スカラ座よりも実行するためにJavaを得ることができます。
人々はスカラ座やJavaが速くなりますインスタンスが表示されますように、これは、一般論で答えるのは難しい質問です。
しかし、var
を使用していない場合はScalaが一般的に高速になると思われますが、val
が代わりに使用されます。
"たとえば、何か数学的に集中的にやっているのであれば、ScalaはJavaよりも速くなります" - それが本当であることを実証できますか? – igouy
私は可能ですが、それはしばらくありますが、Scalaの設計のためにFinite Element Mathなどの並列処理が簡単な問題がある場合は、関数型プログラミングを利用することでScalaの処理速度が向上しますしかし、私が言及したように、あなたはどちらかを示すための議論を思いつくことができます、それは問題と各言語がいかにうまく書かれているかによって異なります。 –
「分かりやすいような問題があれば」 - 例えばスペクトル - ノルム? http://shootout.alioth.debian.org/u32q/benchmark.php?test=spectralnorm&lang=scala&id=2 – igouy
自分のためを参照してください -
Current comparison - Java vs Scala vs JRuby
OUT OF DATE comparison - Java vs CAL vs Nice vs Scala vs JRuby vs Groovy
+1:これらの要約ビューは良好です。 –
- 1. ANTLR4出力言語が最も速く実行されていますか?
- 2. NSTimerを実行するのが最も速いのは何ですか?
- 3. PNaClで実行される他のプログラミング言語は何ですか?
- 4. POJO上でXPath言語/インタフェースをラップする最も良い方法は何ですか?
- 5. CLで速度の宣言を最適化するものは何ですか?
- 6. ファイルを上書きする最も速い方法は何ですか?
- 7. A/B分割を実行する最も理想的な言語間の方法は何ですか?
- 8. Scala以外のJVM上で動作する代替マルチスレッド最適化言語?
- 9. リモートマシン上のイベントログを読み取る最も速い方法は何ですか?
- 10. 最も純粋なオブジェクト指向言語のいくつかは何ですか?
- 11. ループはC言語で期待以上に実行されます
- 12. UIViewの背景を実装する最も速い方法は何ですか?
- 13. デスクトップをストリーミングする最も速い方法は何ですか?
- 14. タイプをチェックする最も速い方法は何ですか?
- 15. どの言語(JVM上で動作する)はDSLの作成に最適ですか?
- 16. iOSで最も速い描画方法は何ですか?
- 17. iPadで最も速いアニメーションは何ですか
- 18. Javaの世界であなたが好むスクリプト言語(JVMのスクリプト言語)とは何ですか?
- 19. Rで複数の論理比較を実行する最も速い方法は何ですか?
- 20. 最新のWindows上でHWNDに描画する最も速い方法は何ですか?
- 21. /inで実装されたMicrosoft Navisonの技術と言語は何ですか?
- 22. XNAはどの言語で実装されていますか?
- 23. JVMの速度を上げるにはどうすればよいですか?
- 24. NetBeansが実行されているJVM
- 25. 最初に実行されるのは何ですか?
- 26. netTcpBindingの最も速いセキュリティ設定は何ですか?
- 27. 最も速いAndroid SDKの設定は何ですか?
- 28. 最も速いwinformsデータグリッドは何ですか?
- 29. 整数除算を行う最も速い方法は何ですか?
- 30. HTTPリクエストを実行して404を確認する最も速い方法は何ですか?
これは、あなたがそれで何をしているかに依存しませんか? –