My profiling shows that an appreciable amount of time is spent on isDebugEnabled calls. It's not huge, but they add up to 5 seconds of time over 100 calls because they are invoked almost 400,000 times in over those 100 calls.
I'm wondering whether we couldn't adopt the policy that says debug logging is either enabled or disabled at creation time for certain heavily used objects, like DeserializationContextImpl. So, you'd either get debug logging or you wouldn't, on a message by message basis. Changes won't take effect until the next message. DeserializationContextImpl accounts for almost all of the calls described above. I am, of course, volunteering to do the work. What say you? Eric
