電子書籍の厳選無料作品が豊富!

Javaは重いと言われますが、Javaより重い言語はあるのでしょうか?

A 回答 (4件)

たまたまredditを読んでいたら記事が出ていたので:


あるアルゴリズムを異なった言語で実装して計測した結果です。


http://scienceblogs.com/goodmath/2006/11/the_c_i …

* C: 0.8 seconds.
* C++: 2.3 seconds.
* OCaml: 0.6 seconds interpreted, 0.3 seconds fully compiled.
* Java: 1 minute 20 seconds.
* Python: over 5 minutes.

About a year later, testing a new JIT for Java, the Java time was down to 0.7 seconds to run the code, plus about 1 second for the JVM to start up.

JITの登場でJavaの実行時間が1.2分から0.7秒に減ったそうです。確かにC、C++に勝っていますね。Pythonは5分とかなり長いですね。

この回答への補足

興味深いアドバイスをありがとうございます。Pythonが5分以上ということですが、Pythonはコードを記述しやすく、再利用性や可読性が高いということなのでしょうか。検討してみます。

補足日時:2009/05/06 18:44
    • good
    • 0
この回答へのお礼

どうもありがとうございました。

お礼日時:2009/05/06 18:51

こんにちは。


全ての言語にあてはまるわけではありませんが、質問者様が
言っておられるような内容であると、
最近登場しているような高級言語はみな処理が重いのではないでしょうか。というか、どの言語も得意分野不得意分野があります。で、処理
の重さは、言語の実行エンジンを動作させるハードウェアとも深く関係していますので、どの言語が一番処理が重いとは、正直なところ言えないと思います。よく、Javaに比べたら.NETは軽快という人もいますし、
その逆のことを言う人もいます。そして、どの言語も、処理効率が少しでもよくなるように改良は絶えず続けられています。視点を変えますと、確かに、実装の仕方云々を度外視して、処理効率だけに関していうと、やはり、C言語あたりが一番処理効率が高いと思います。ですが、
生産性の高さも重要となると、C言語が一番よいとは必ずしも言えません。むしろ、Javaや.NETの方が、C言語よりは問題にならない程度で処理効率は低くなるが、生産性は断然高い方を選択するケース
があるからです。

この回答への補足

回答ありがとうございます。生産性の高さについても議論してゆきたいと思います。

補足日時:2009/05/06 18:48
    • good
    • 0
この回答へのお礼

ありがとうございました。

お礼日時:2009/05/06 18:52

PHP, Python, Rubyなどのコンパイルされない言語は基本Javaより遅いと思います。

JavaでPython実装したJythonなんかはより遅いかも。。。

(ベンチマークありました:
http://blog.dhananjaynene.com/2008/07/performanc …


Javaは、昔から遅いと言われてきましたが、hotspotテクノロジがでた辺りからかなり速くなってきていて、Cに迫るか、Cより速いと主張する人もいます(僕は経験が少ないんであまりよく分かりませんが。。。)

今後は実行時の情報からコンパイラが動的に最適化を繰り返しながらコンパイルを随時行う方式が主流となり(JIT)、pythonなどの動的言語もいずれはC、アセンブリなどの実行速度を上回るだろうという内容のプレゼンを数年前にグーグルのエンジニアがStanfordかどっかでしていました。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。リンクを覗いてみました。Pythonは遅いと評価されていますが、コード量は圧倒的に少ないですね。また、Cは高速ですが、可読性が非常に悪く、掲載されているコードを読む気にはなれませんでした。Javaは高速化されているとおっしゃっていますが、オブジェクト指向独特の、メンバ関数の宣言に要する行数が多く、個人で数値計算等を行うときは生産性が大きく下がるような気がします。

お礼日時:2009/05/06 19:10

はじめまして。


実質、それはプログラマの実装の
仕方が一番影響しているような気がします。言い方を変えますと、
たとえC言語であっても実装がへたくそであると、
相当重いアプリケーションになります。つまり、重い軽いは
プログラマの腕次第であると思います。センスのない人が実装すると、
どのような言語であっても処理が重いです。

この回答への補足

なるほど。では高級であるがゆえに重くなりがちな言語はあるのでしょうか?

補足日時:2009/05/06 11:02
    • good
    • 0
この回答へのお礼

お返事ありがとうございます。質問の意図としては、重いが生産性の高い言語を知りたかったのです。

お礼日時:2009/05/06 19:13

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!