More times than not, performance tuning is done prematurely, which usually results in tuning code that may not make a difference in the end or that is already optimized behind the scenes by the compiler or JIT, instead of identifying the actual bottleneck in the system using a profiler.
That's what I did. It's loosing to much time in the client side where processing of the errors is done.
I used a profiler, found the bottlenecks. Working on each of them seperatly. I hear a lot of people say concentrate on the real bottlenecks. Sure, but usually re-design of the architecture and refactoring of some code at some stage will sort that out, if you have the time and resources for that. Still I think that when you program you should be aware of performance all the time. I see a lot of programmers use '+' with Strings whilst all books say use StringBuffer. Ok, it might be a small thing but if you're a real-time systems programmer they'll hang you by the goolies with an attitude like that. What I'm trying to say is, if there is a better way, get to know it, use it and don't always hide behind the re-design dogma. You guys know as well as I that projects hardly ever go the way you want and there might never be the time to sort out the big issues which cost a lot of time (=$$$).
Anyway thanks for the replies.