JVMベースだとそれなりのスペックが必要になるのでしょうか?
Webのサーバーサイドの言語にはいろいろあるようです。自分は代表的な言語について広くは知らないのですが、VM(Virtual Machine)を必要としないC, C++とJVMの比較に関して言えば次のようなことが言えます。
- ネイティブな機械語 vs byte code
C, C++はCPUのネイティブな機械語を生成しますが、JVM言語では機械語に近いレベル(=つまり低レベル)のbyte codeを生成します。JIT(Just-In-Time compiler)などの機構もありbyte codeは自動的に機械語へ変換されたりもしますが、実行スピードは当然ながらネイティブな機械語の方が早いです。
- メモリー管理を自前で行う vs Garbage Collectorにまかせる
C/C++はメモリーをどう配置するかや動的な確保・解放は全部プログラマーまかせです。作るのが面倒かつバグがあると致命的といった事情があるので一定レベルの設計者が注意深く設計することが要求されると思います。
一方JVM言語ではメモリーの管理は汎用的な機構(Garbage Collector)がやってくれるのでC/C++のような面倒から解放されますが、そのかわり汎用的であるがゆえのオーバーヘッドは甘受しなければなりません。
Javaで1秒かかるものがCで0.1秒だっとしてスタンドアロンプログラムなら問題になりませんが、サーバーサイドではスループット等々の性能の重要度が高いため「そこそこの性能が必要」という言い方になるのだと思います。
なお、JVM以外にもVMを用いるスクリプト言語・コンパイラー言語はあると思いますがそれらの中にJVMよりも性能のよい言語システムが存在するといった意味も含まれているかも知れません。(逆にJVMよりも遅いものもあるかも知れませんが・・・)
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2016/11/12 11:31
2016/11/12 12:45
退会済みユーザー
2016/11/13 01:51