0134デフォルトの名無しさん (ワッチョイ 1f61-5Ye2)
2019/07/26(金) 07:12:48.67ID:4yTQHcMn0実は、>>133が指摘してる通り JavaやC#は言語仕様そのものが native binary
に直してもC++ほどの速度にはなりにくい。例えば遅くなる理由として
1. GC(Garbage Collection)によって自動的にfreeやdeleteさせようとする仕様。
2. 標準的にはポインタを使わない仕様。
3. オブジェクトが構造体やスタックに埋め込まれずにheapからnewされ易い仕様。
4. 二次元以上の配列がJaggyタイプに成り易い仕様。
5. バッファオーバーランの防止のため、配列の境界チェックが行われやすい仕様。
6. ライブラリが巨大なため起動時に大量のコードがディスクから読み出されるため、
起動が遅く成り易いこと。巨大になる理由の一つはリフレクションや型に
#includeによる静的コンパイルをせずにすますためののクラスの型情報などが
(Javaの場合は*.classや*.jarなどの)ライブラリに入っているためだろうか。
例えば、C#も予めnative binaryに直してしまう方法も有るが、それでも起動速度は
余り早くならないらしい。起動後も1.〜5.の理由のためC++程の速度にはなりにくい。