Overview
Syllabus
Intro
JOA EBERT JVM/IS
aot vs jit
different optimizations
OPTIMISTIC ASSUMPTIONS
DEOPTIMIZATIONS
CLASSLOADER SUPPORT
workers RUN COSTLY OPTIMIZATIONS IN BACKGROUND
browser concentrates on user code
java is statically typed
we have a tracing compiler
scales across platforms
LABELED BLOCKS CONSIDERED EVIL!!11!
#SEMANTICS
impl jvm semantics for js
don't add too much overhead
class initializer
instance initialization
numerics
SIMPLIFY SIMPLIFY SIMPLIFY
10fps difference in v8
prototype voodoo
undefined === null //?
5x in firefox for richards benchmark
MORAL OF THE STORY?
should mimic
cleanup and simplify
take shortcuts
ABuse what's available
test and measure
MEASURE!
#OPTIMIZER
which one to use?
blink, servo, firefox ...
spec bugs & inconsistencies
always check for types
#DISPLAYLIST
optimize based on heuristic
cache vertices and culling information
COMANCHE
HEISENBERG
Taught by
JSConf