Presentation explores the process of bytecode interpretation and compilation inside HotSpot JVM. It shows how Java Virtual Machine internally works in regards to Interpreter and Just-In-Time compiler, as well as few optimizations achieved to gain better performance. Some of the shared topics are useful for programmers passionate about doing performance and understanding how to write micro-benchmark tests. The presentation contains a demonstration that figures out optimizations occurred during Just-In-Time compilation process. JITWatch tool for visualizing the generated assembly is used.