Note that there are some explanatory texts on larger screens.

plurals
  1. POIs there any real advantage from Bytecode JIT execution over native code beside portability? (General and OS-Design)
    primarykey
    data
    text
    <p>Is there any real advantage from Bytecode JIT execution over native code beside possible implementation of platform independency?</p> <p>Apparently languages that use "virtual machines" over Bytecode JIT execution are attributed several advantages. But in what extend would this really affect a discussion concerning advantages/disadvantages of native code and JIT execution?</p> <p>Here's a list of attributes that I identify, the question is in what extend does this also apply to native code - if the compiler supports it...</p> <p><strong>Security</strong></p> <p>VM runtime environments can observe the running application for e.g. buffer overflows. </p> <ul> <li><p>So first question is if this is done by the "runtime environment", means e.g. by the class library or during JIT execution?</p></li> <li><p>Memory bounds-checking exist also for native code compilers. Any other/general restrictions here?</p></li> </ul> <p><strong>Optimization</strong></p> <p>Classical optimization should be possible in native code compilers, too. See LLVM which in fact uses the generated bitcode to run optimization on, before compiling to native code. </p> <ul> <li><p>Maybe there would be something like a dynamic optimization in JIT by e.g. identifying things to optimize related to the execution context. Could maybe be possible for a native compiler, too, to generate some code to optimize the execution during runtime. But dont't know if something like this is implemented.</p></li> <li><p>Popular VM implementations do this - the question is if this really excuses a real advantages over native code.</p></li> </ul> <p><strong>Threading</strong></p> <p>I don't cound this while threading also in a VM is dependent on the native Thread implementation of the OS.</p> <p>If we identify that there is no real advantage over native code and that there is always a runtime drawback in JIT... than this leads to the next question:</p> <p>Does an operating system design based on JIT execution (e.g. Singularity, Cosmos, ...) make sense?</p> <p>I could maybe identify one advantages: An OS with this design needs no MMU. Means there is no process seperation that makes use of the MMU, but a seperation between objects/components in software. But is it worth it?</p> <p>Best regards ;-)</p>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload