~/talk

What Lies Beneath

Talkat Voxxed Days Milano 2019 · on Saturday, 2019-04-13· [java, compilers-and-language-design]
links:none on file
slides:none on file

A tiny Java program loads constant CafeBabe and 0xDEADBEEF, divides and calls add to produce 255, and the bytecode travels from javap view through a template interpreter to x86 where an elaborate integer.MIN_VALUE ÷ -1 check inflates the assembly. Removing the small add yields ~25% faster manually; letting the JIT inline and constant-fold drops runtime to about 2% of the original. Measurements use JMH with hardware counters via perf, and JITWatch exposes what the compiler actually emits.

AI-written summary · about

  1. 0:00Intro
  2. 0:30Maurice Naftalin
  3. 1:05What Lies Beneath
  4. 3:30Java to Bytecode
  5. 11:06java ... -XX:+PrintInterpreter
  6. 17:03Improving Our Program...
  7. 20:15Without Inlining (-XX:-Inline)
  8. 22:51JIT Optimisations
  9. 25:23A Pile of Cache...
  10. 26:02The Memory Hierarchy
  11. 28:46Stride Prefetching
  12. 29:46Data-Dependent Loads
  13. 31:49Measuring Cache-Friendliness
  14. 34:41Primitive Array
  15. 37:18Conclusions
  16. 39:28Digging Deeper...
~/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.