Reducing compilation overhead in j9 tr
This presentation is the property of its rightful owner.
Sponsored Links
1 / 16

Reducing Compilation Overhead in J9/TR PowerPoint PPT Presentation


  • 78 Views
  • Uploaded on
  • Presentation posted in: General

Reducing Compilation Overhead in J9/TR. Marius Pirvu, Derek Inglis, Vijay Sundaresan. Agenda. Adaptive compilation in the TR JIT Class Load Phase Asynchronous compilation Limiting the negative effect of very long compilations Ongoing work Improvements to async compilation AOT.

Download Presentation

Reducing Compilation Overhead in J9/TR

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


Reducing compilation overhead in j9 tr

Reducing Compilation Overhead in J9/TR

Marius Pirvu, Derek Inglis, Vijay Sundaresan


Agenda

Agenda

  • Adaptive compilation in the TR JIT

  • Class Load Phase

  • Asynchronous compilation

  • Limiting the negative effect of very long compilations

  • Ongoing work

    • Improvements to async compilation

    • AOT


Adaptive compilation in tr jit

interpreted

warm

hot

profiling

scorching

Adaptive Compilation in TR JIT

  • Methods start out being interpreted

  • After N invocations methods get compiled at ‘warm’ level

  • Sampling thread used to identify hot methods

  • Methods may get recompiled at ‘hot’ or ‘scorching’ levels

  • Transition to ‘scorching’ goes through a temporary profiling step


Performance

Performance


Performance1

Performance


How about applications without hotspots

How About Applications Without Hotspots

  • WebSphere AppServer startup

    • Very flat profile


Class load phase

Class-Load-Phase

  • Intuition: Methods compiled during startup phase may not be important during application run phase

  • Detect phases when class loading is intense

  • Reduce optimization level to “cold” during such phases


Asynchronous compilation

AsynchronousCompilation

  • Synchronous compilation

    • Application thread places compilation request and blocks waiting for the compilation to finish

  • Asynchronous compilation

    • Application thread does not wait for the compilation result

  • JIT compilations performed on a separate compilation thread


Asynchronous compilation1

Asynchronous Compilation

  • Implementation

    • Synchronous compilation still needed in some cases (e.g. pre-existence)

    • Synchronous and asynchronous compilation must coexist

    • Queue of compilation requests

  • Advantages

    • Takes advantage of available processors on SMP machines by increased parallelism

    • Allows performance improvements in uniprocessors by changing compilation thread priority

    • Allows reordering of compilation requests


Performance results short running apps

Performance Results – Short Running Apps.

  • Asynchronous compilation on SMP reduces execution time of short benchmarks


Limiting negative effect of long compilations

Limiting Negative Effect of Long Compilations

  • Compilations may impede GC operation

    • GC requires exclusive VM access

    • Cannot allow class unloading while compilation in progress  Compilations require VM access

  • Solution

    • Compilation thread periodically releases and reacquires VM access allowing GC to cut-in

    • Upon re-acquiring VM access, check if GC unloaded any classes

    • If classes were unloaded, abort current compilation and retry


Ongoing improvements to asynchronous compilation

Ongoing Improvements to Asynchronous Compilation

  • Idea

    • Use thread priorities to smooth out the effects of compilation - effectively interleave compilation with execution

  • Implementation

    • Don’t use more than X% CPU for compilation

    • Use the queue of methods as a buffer

      • accumulate work during periods of heavy utilization

      • solve the backlog when CPU is lightly used or idle (due to IO for instance)

    • Prioritize compilation requests in the queue


Performance uniprocessors

Performance - Uniprocessors


Ahead of time aot compilation

Ahead Of Time (AOT) Compilation

  • Using the JIT as a static compiler

  • Fully compliant code

  • Used by J2ME customers to decrease footprint by eliminating the JIT

  • Will be used by the Real Time offering to eliminate the possibility of nondeterministic behaviour introduced by the JIT

  • Experimenting with combining AOT and JIT compilation to improve startup times


Eclipse 3 0 1 startup times

Eclipse 3.0.1 Startup Times

Hardware: [email protected] Pentium3 M, Windows32 Options:-Xmx512m -Xms512m for all tests


Reducing compilation overhead in j9 tr

?


  • Login