YoVDO

Compiling Java Bytecode to JavaScript - An Interesting Problem

Offered By: JSConf via YouTube

Tags

JSConf Courses Web Development Courses Javascript Courses WebGL Courses

Course Description

Overview

Save Big on Coursera Plus. 7,000+ courses at $160 off. Limited Time Only!
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

Related Courses

Software as a Service
University of California, Berkeley via Coursera
Intro to Computer Science
University of Virginia via Udacity
Web Development
Udacity
Software Engineering for SaaS
University of California, Berkeley via Coursera
CS50's Introduction to Computer Science
Harvard University via edX