Main Site Documentation

JIT or Interpreted


How does GHI’s implementation handle the IL generated by the C# Compiler? Does it use a JITTER or does it runt the IL Interpreter on board?

HOw about in the case of Runtime Loaded Assemblies?


Interpreted and this is the case for all NETMF devices.

RLP is native code assembly/C running right on the processor.


You will find all standard .NETMF devices are interpreted. I heard on a podcast with the head of the .netmf team inside microsoft they tried jitting early on but the limited ram nature of a lot of the target processors was causing a major speed hit from jitting a routine, executing it, calling a subroutine, throwing out the parent routine, jitting the sub, running the sub, throwing it out then rejitting the parent to continue execution. So they dropped it and straight interpreted ran much faster.


The other reason they interpret IL code is because native code is as much as 10 times larger, so they get a significant memory savings on these tiny devices.

The IL interpreter is quite fast and you will note that the processor used in the FEZ is much faster than the one used in the Arduino. (I believe the Arduino uses a 16mhz ARM and the FEZ uses a 72mhz ARM.)