Jump to content
Excelsior Forums
Jetfire

JAva PLugin Framework (JPF)

Recommended Posts

HEllo everyone,

    I'm new to using JEt but it seems like the kind of tool we need. However, our application is a LARGE one. It consists of something like 240 JAR files  ;)

That in itself can be a problem, but nothing that a little work can fix.  My question is concerning our use of JPF. It's a plugin framework that uses XML files to dynamically know which jar to put in the classpath. Now if I manage ton cert all my JAR files to DLL, will the framework know which dll conresponds to which jar?

Share this post


Link to post
Share on other sites
I'm new to using JEt but it seems like the kind of tool we need.

...

Now if I manage ton cert all my JAR files to DLL, will the framework know which dll conresponds to which jar?

The answer depends on what's the purpose of using Excelsior JET for your application. Please let us know more details.

Share this post


Link to post
Share on other sites

The answer depends on what's the purpose of using Excelsior JET for your application. Please let us know more details.

Our purpose is to speed up the execution and loading of the Swing components. We noticed that the first opening of a Swing window is very long and are looking for a way to speed up this process.

Share this post


Link to post
Share on other sites
Our purpose is to speed up the execution and loading of the Swing components.

Thanks for this clarification.

For this purpose, compiling each jar into a separate DLL is not a solution. Taking into account the number of jar files on your application's classpath, it would slow down start-up time due to the overheads inherent to OS dynamic linking.

After all, did you ever see a native app that loaded 240 DLLs? If yes, how fast did it start?  B)

I believe that you can improve start-up time of your application with Excelsior JET iff

  - you compile all jars into a single executable; and

  - enable the Global Optimizer

The downside is that the classpath should be fixed to use these optimization techniques. If JPF changes the classpath at run-time (or, more probably,  uses custom classloaders to manage it) you will not be able to compile all these jars into a single executable.

Excelsior JET works with such Java applications using the JIT compiler that comes with the JET Runtime. However, you will not get improvements in execution or start-up time if the most of application classes are compiled dynamically with the JIT.

Share this post


Link to post
Share on other sites

Thanks for the clarification. However, we are not trying to speed up application startup. We're trying to speed up the first openning af a given Swing window in our application. It appears that the first time an instance of a window is created (with "new") it takes something like 20 secs where the next occurences take more like 5 secs.

And yes, JPF does use custom class loaders... So if I'm not mistaken, this is a problem with JET right?

PS: by the way, this java application is a re-write of an existing application consisting of some 1200 DLLs,  at least half of wich are loaded dynamically at startup time, the rest during the execution ;-)

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×