Overview
Save Big on Coursera Plus. 7,000+ courses at $160 off. Limited Time Only!
Explore the evolution of Java's dynamic code features and their impact on startup performance in this 36-minute conference talk. Delve into the implementation of language and VM features using invokedynamic and method handles, introduced in Java 7. Learn about the runtime overheads associated with dynamic code definition and invocation, particularly during startup. Discover the efforts made from JDK 8 through JDK 11 to address these overheads, significantly reducing them in some cases. Examine the potential of new features like condy for the future of lambdas, and understand how upcoming language features can be implemented using indy, condy, and other techniques without compromising startup and footprint efficiency. Gain insights into startup optimization techniques, lambda translation and class generation, and the evolution towards better metaprogramming and bytecode generation in Java.
Syllabus
Intro
Startup challenges at a glance...
Startup optimization techniques
But let's start from the beginning...
Hello World: Bytecodes executed
Hello form factors
Lambda translation
Lambda class generation
Introducing Condy
Using Condy to bootstrap Lambdas
Profiling ISC initialization
Towards better metaprogramming
Towards better bytecode generation
Better constants better code generation?
Taught by
Java