What is this asm style “x | 0” some javascript programmers are now using?

According to JavaScript Performance for Madmen Wrapping integer arithmetic expressions in ( ) | 0 allows the runtime to be sure that you’re doing integer arithmetic instead of floating-point arithmetic. This allows it to avoid checking for overflow and produce faster code in many cases. and according to the page, it’s true for “most” Javascript … Read more

Is the CLR a virtual machine?

There are a lot of misconceptions here. I suppose you could think of .Net as a virtual machine if you really wanted, but let’s look at how the .Net Framework really handles your code. The typical scenario looks like this You write a .Net program in C#, VB.Net, F#, or some other compatible language. That … Read more

Differences between Just in Time compilation and On Stack Replacement

In general, Just-in-time compilation refers to compiling native code at runtime and executing it instead of (or in addition to) interpreting. Some VMs, such as Google V8, don’t even have an interpreter; they JIT compile every function that gets executed (with varying degrees of optimization). On Stack Replacement (OSR) is a technique for switching between … Read more

What is the purpose of the Java Constant Pool?

Constant pool is a part of .class file (and its in-memory representation) that contains constants needed to run the code of that class. These constants include literals specified by the programmer and symbolic references generated by compiler. Symbolic references are basically names of classes, methods and fields referenced from the code. These references are used … Read more