How the JVM compiles bytecode into machine code

Поделиться
HTML-код
  • Опубликовано: 12 сен 2024
  • Here is a talk on how two completely different compilers (C2 and JRockit) compile JVM bytecode into machine code.
    Enjoy! (Click "Show More" below for the list of contents!)
    Fredrik Öhrström
    0:0 Intro
    1:30 The stack frame and the hardware stack
    3:37 Bytecode to high level intermediate representation
    5:00 Two ways of implementing the intermediate representation (IR)
    9:20 Single Static Assignment (SSA) form
    11:05 Rewriting the IR in place
    11:50 Register allocation
    12:45 Example 1: Jrockit
    17:00 phi (join) nodes
    18:40 Example 1: C2
    21:14 Ctrl flow and data flow
    23:00 Example 2: profile says: do not inline
    25:02 Example 3: profile says: do inline
    28:00 Example 3: C2
    28:20 C2 has two different ways of inlining
    29:35 Example 4: Remove allocations
    33:30 Clean memory access
    34:12 Localize objects
    34:50 Deadcode elimination
    35:20 Example 4: C2
    36:20 Example 5: Cold code
    37:22 Example 5: C2
    38:00 The common un-common trap
    41:27 Example 6: inlining galore
    46:40 Example 6: C2
    47:18 Example 7: Boxing removal
    48:40 Lets do performance testing...
    51:40 Conclusions

Комментарии • 2

  • @sergeykholkhunov1888
    @sergeykholkhunov1888 4 года назад +3

    I didn't understand anything, but it's quite interesting! Thank you!

  • @janhulst8189
    @janhulst8189 2 года назад

    In Scandinavia, they don't have servers, they have 'sorvers'.