~/talk

Minimal Values Under the Hood

Talkat JVM Language Summit 2017 · 2017-07-31..08-02· [java]
links:none on file
links:none on file
slides:none on file

An experimental JVM prototype implements value-capable classes derived at load time via bytecode generation and MethodHandles, producing flattened instances for arrays and fields and avoiding per-element headers. J9 adds a per-thread page-backed heap-buffered stack allocation to reduce interpreter heap churn, while the JIT generates register-passed field-wise calling sequences that eliminate many allocations; microbenchmarks show much simpler generated code and large speedups, though platform limits remain (alignment, atomicity, signature/adapter complexity and incomplete C2 support).

AI-written summary · about

  1. 0:00Intro
  2. 3:16MVT: value types without value types
  3. 4:40Deriving the Value Class - 19
  4. 9:40Deriving the value class - HotSpot
  5. 11:11Value Types Flattening
  6. 12:15Array Flattening, not so simple
  7. 15:17Value Bytecodes
  8. 18:31Separate compilation breaking the calling convention
  9. 19:27Slot design alternatives
  10. 21:43Interpreter changes in HotSpot VM
  11. 23:01Hotspot interpreter on-heap / off-heap values
  12. 25:09Hotspot: thread local buffer management
  13. 26:17Hotspot: Values format
  14. 28:48Example: Complex number using POJOS
  15. 29:25Example: Complex number using Value Types
  16. 37:09Field Flattening
  17. 39:02Flattened fields - 19
  18. 41:26Value types methods and interfaces
  19. 43:02Value types and generic code
~/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.