Posts

Showing posts from October, 2017

Java Byte Code, Interpreter and JIT

Image
Generally, when a program is compiled to an intermediate level and then interpreted  by a virtual machine, it runs slower than it would run if compiled to machine code. However, with Java, the differential between the two is not important for general purpose. Because byte-codes are highly  optimized, the use of byte-code enables the Java Virtual Machine to execute programs much  faster than you might expect. Java is also designed as an interpreted language, so java does not have anything to stop  (on the fly) compilation of byte-code into machine code, to improve  performance. For this reason, the HotSpot technology was introduced after Java’s initial release. HotSpot provides a Just In Time (JIT) compiler for bytecode. When a JIT compiler is part  of the JVM, selected set of bytecode are compiled into executable code in real time,  on a piece, by, piece, demand basis.  It is important to understand that it is not practical to  compile a whole Java program into machine code all a