I am trying to improve the startup performance for our wars, since we are essentially hosting a services based backend where we have around 50+ wars (one for each service). Deployment of all these services at once sometimes causes PermGen and also the restarting of the server can take quite awhile. So I am trying to evaluate all the possibilities of the architecture (WLS, Spring, Hibernate, CXF) for performance gains.
All our transactions are done through Spring AOP and some of our SLA/Policies utilize AOP Pointcuts.
I have seen some cases where our Spring AOP pointcuts were either poorly created or we had to many that would cause JUnits to PermGen. Where it appears like much of the startup time is the creation of the pointcuts and retrieval of the pointcut objects (so I merged some of our custom Pointcut/Interceptor classes into a single class and single Pointcut, which reduced the amount of Pointcuts created at startup by about 30%).
Is it worth converting all of this to AspectJ (which I haven't used before) in order to get some benefits out of compile time weaving? Would this provide better speed for startup performance as well as memory usage?
I have looked at the posts:
And I am definitely looking purely from a way to take the load off of the startup and memory requirements, and only want to make an attempt to migrate if it is worth the effort.