~/talk

Investigating Managed Language Runtime Performance: Why JavaScript and Python...

Talkat USENIX ATC '22 · 2022-07-11..07-13· [compilers-and-language-design]
links:none on file
links:none on file
name:Ding Yuan
links:none on file
slides:none on file

Careful measurements compare OpenJDK, Go, V8/Node.js, and CPython against GCC using six reimplemented apps called LangBench and intrusive bytecode-level instrumentation that counts cycles per instruction and isolates checks. Results show V8 averages 8.01x slower and CPython 29.50x slower than C++; OpenJDK and Go are near parity (1.43x and 1.30x). Removing V8 shape/bounds checks yields up to 7.9x speedups, G1 write barriers cause 10x slowdowns in sort until changed, GC compaction improves cache locality, and Go goroutines cut context switches so it scales across cores.

AI-written summary · about

  1. 0:00Intro
  2. 0:54The Advantage of Managed Languages
  3. 4:20Interpreter Instrumentation
  4. 6:02Type and Bounds Checking Instrumentation
  5. 7:22Experiment Methodology
  6. 7:49Overview: Average
  7. 8:53Overview: Limited Scalability in V8 and CPython
  8. 9:20Overview: Runtime Advantages
  9. 10:21Runtime Overhead: Type and Bounds Checking
  10. 12:00Runtime Overhead: GC Write Barriers
  11. 13:01V8 and CPython Limited Scalability
  12. 15:04Runtime Advantages: GC Cache Locality
  13. 18:16Scalability: Go Key-Value Store
  14. 19:46Related Work
~/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.