~/talk

Nashorn War Stories: Dynamic Language Performance on the JVM

Talkat GOTO Aarhus 2013 · 2013-09-30..10-02· [javascript]
links:none on file
slides:none on file

Nashorn is a pure‑Java ECMAScript engine in JDK8 that uses invokedynamic and method handles to specialize callsites, add optimistic primitive types, and patch JVM pain points. Conservative compilation is slow; adding optimistic ints, JVM intrinsics for addExact and catch‑based “unwarranted optimism” rewrites drops a microbenchmark from Rhino 34s → Nashorn 10–11s → optimistic 5.8s → intrinsics 4.4s → with type profiling 2.5s, while V8 remains ~1.3s. Workarounds include LambdaForm/inlining fixes, metaspace tweaks and one‑frame unwinding for deoptimizations.

AI-written summary · about

  1. 0:00Introduction
  2. 3:35What is Nashorn?
  3. 5:20Why Nashorn?
  4. 7:07When is Nashom available?
  5. 11:12Let's talk about JavaScript - Numbers
  6. 13:37Let's talk about JavaScript - Types/Numbers
  7. 15:41Let's talk about JavaScript - Static type info
  8. 20:35Fibonacci calculator
  9. 20:58Callsite specialization
  10. 24:22Type Specialization - Prove ints
  11. 24:49Type Specialization - Prove doubles
  12. 25:03Static range analysis-fold doubles to ints
  13. 27:04Summary - Static analysis
  14. 28:07Statically provable callsites for am3
  15. 29:29We really want to use ints where we can
  16. 31:38Using Ints, problem 1 of 2 - Overflow check
  17. 32:29Solutions Intrinsity math operations
  18. 38:29Continuations, you say?
  19. 44:21JVM issues
  20. 48:12War story: warmup
  21. 48:43Another war story: Metaspace
  22. 51:04Future work. JVM
  23. 51:42Nashorn current performance status
  24. 52:08Nashorn with optimistic types
  25. 52:18Patch JVM to keep more type into while
  26. 55:12ORACLE
  27. 56:12UPGRADE
~/search
type to search 6,249 conferences, 138,987 speakers and 185,172 talks
~/help
cmdctrl k
search every conference, speaker and series
/
focus the filter search
h
home
c
conferences
s
speakers
e
series
t
light / dark — the status bar button does the same
?
this help
esc
close this, then clear every filter — or just the search, while you are typing in it

Ignored while you are typing. Pages without a filter rail have no search to focus.