1 Reply Latest reply on Mar 18, 2009 10:30 PM by 807557

    Why ITC if there are .jar Files?


      I'm trying to understand, where the real benefit of Initialization Time Compilation is. Of course one can find much less activity of JIT during execution, but there is still a bit JIT activity when accessing some classes for the first time. This small JIT acitivities can disrupt my hard real-time requirements anyway. It would of course be better if ITC would make JIT needless if one precompiles, preloads and preinitializes everything. But this is not the case - why not??
      So as an alternative one can think of using .jar files. If one packs an application to a jar archive, then it is completely compiled. So during execution of the .jar file there is no JIT activity any more (I didn't test this by myself). Is this way not the better way to exclude JIT Jitter??

      Tanking you in anticipation!

      Edited by: Gordon_Realtime on Mar 18, 2009 4:46 AM

      Edited by: Gordon_Realtime on Mar 18, 2009 5:36 AM
        • 1. Re: Why ITC if there are .jar Files?
          There are two parts to using ITC effectively. The first is the actual compilation that occurs at initialization - this is defined by your precompile list. The second is to get all those classes you intend to apply ITC to, pre-initialized when the VM starts up - the pre-init list. In that way all of the critical code is fully compiled prior to the application actually commencing execution.

          The code you may want to compile will often cross the boundaries of packages and jar files, so using a jar as a unit of compilation would not be very effective as you'd end up adding a lot of jars and compiling a ton of unnecessary stuff. The pre-init and pre-compile lists let you select exactly what code you want to be pre-compiled for time critical threads.

          That said in 2.1 there are some issues with the ITC mechanism and that is being addressed for 2.2

          David Holmes