ReadyNow! - advise the JVM that initialization is complete



  • Official comment
    Thomas Garben


    The answer to your question about considering a mechanism where an application developer can indicate to the JVM that a “State Change” has taken place, such as “my initialization is complete”, is definitely being considered.

    Having methods optimized appropriately for the specific state an application makes perfect sense.

    If methods are de-optimized by a system stressed from system startup, initial data loading, or any other reason, then there can certainly be an impact on both performance and latency of a system as it changes states and starts running under its normal expected steady state load.

    Such a mechanism would likely be implemented as part of ReadyNow!®, since ReadyNow!® already supports this type of functionality.

    What is being considered is a little more general than only identifying and handling initialization.

    What we are thinking of is supporting the ability to capture multiple different ReadyNow!® profiles that could be loaded at will by the application code.

    The basics of what is being considered would give users the ability to:

    • create individual ReadyNow!® profile logs, or tagged segments within a single log file, that would contain compilation and de-optimization decisions from training runs for each desired state the user would like to have a profile for.
    • call Zing methods available to application code that would load a State Profile and us this profile to optimize the ZVM so it runs optimally in that given state. Calls to such a method might look like:
      1. startPhase(“Warm-up”);
      2. startPhase(“Market Open”);
      3. startPhase(“Steady State Processing”);
      4. startPhase(“End Of Day”);


    Comment actions Permalink
  • Avatar
    Dana Roth


    An interesting notion. So let's say that we did implement a mechanism that allows you to tell a running JVM that warmup is over.

    What benefits you would hope to get from such a mechanism. Reduced latency? Increased throughput?

    And what behavioral changes would you want the JVM to make to help you realize those gains? The only thing I can really think of is to inhibit further JIT compilation, and I'm not sure that's actually desirable.




    Comment actions Permalink

Please sign in to leave a comment.

Powered by Zendesk