V1, V2, V3, V4, …

V8 seems to doing great things for Javascript performance, and there is an interesting series of blog posts on how it does its stuff here.  V8 borrows a lot of techniques from the implementation of Self, a prototype based language from the mid-80s. The Self compiler was very focussed on inlining type specialised methods into other methods in order to gain performance, basing this on the observation that for a typical program, most calls happen with a fixed set of types. This leads to the need to de-optimise code when a call is made that doesn’t use the specialised types, and some of the posts in the series looks at the de-optimisation at the assembly language level.

There is also an interesting discussion of JIT security implications  and the relationship between SSA and CPS forms of intermediate languages. 

Advertisements
This entry was posted in Computers and Internet. Bookmark the permalink.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s