Class Central is learner-supported. When you buy through links on our site, we may earn an affiliate commission.

YouTube

Compiling Java Bytecode to JavaScript - An Interesting Problem

JSConf via YouTube

Overview

Explore the intricacies of compiling Java bytecode to JavaScript in this JSConf EU 2015 talk by Joa Ebert. Delve into the differences between JSVMs and their performance implications, examine the state of WebIDL and its significance, and uncover the relationship between types and optimizing compilers in AOT compilation. Learn about self-optimizing display lists, WebGL, and the WebAudio API in real-world applications. Gain insights into optimistic assumptions, deoptimizations, classloader support, and the benefits of running costly optimizations in the background. Discover the importance of simplifying JVM semantics for JavaScript, optimizing numeric operations, and the impact of prototype manipulation on performance across different browsers. Understand the significance of testing, measuring, and adapting to various browser optimizers. Explore techniques for optimizing display lists based on heuristics and caching vertices and culling information.

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

Reviews

Start your review of Compiling Java Bytecode to JavaScript - An Interesting Problem

Never Stop Learning.

Get personalized course recommendations, track subjects and courses with reminders, and more.

Someone learning on their laptop while sitting on the floor.