Hi Dan,
thanks for the feedback.

On 05/02/15 23:01, Daniel Kulp wrote:
1) Can you save/print a list of everything that is a “get” from the non-message 
contexts?   I’m mostly concerned about Bus/BindingOperation/Endpoint objects.   
A long long time ago (2.0/2.1 timeframe), those objects were stored as 
contextual properties and the only way to retrieve them was via the 
“getContextualProperty” things.   Since we use those all over the place, I 
added direct accessors to the Exchange, but for compatibility still stored them 
as properties.   However, I don’t remember if I went and found all the places 
that used to look those up via the “get” methods and replaced them.   We 
probably could remove those from being stored as contextual properties and 
document that. (should have been done long ago)  Would reduce the number of 
properties to deal with.
I've added few simple System.out in the get method of "array" version and run the jbossws testsuite. No get of Bus/BindingOperation/Endpoint objects afaics; so I've tried grepping getContextualProperty in the whole cxf sources and the only thing I could find is org/apache/cxf/rs/security/saml/sso/AbstractRequestAssertionConsumerHandler getting the Bus from the context.
I'm sending you the zip with the logs.


2) In the “array” version, you could loop through once and just do an == 
compare and then only do the .equals if that ends up null.   I’m willing to bet 
most of the strings we use as keys are interned.
Tried that, but it's not improving performances. To be honest, though, my bench app is likely not stressing the 'get' that much, as it doesn't use WS-Security, etc. Anyway, my gut feeling is that's also because the cache misses are by far much more then the cache hits (for instance, on client side in the jbossws testsuite I see ~5700 props found in the message context, ~350 props found in non-message contexts and ~72000 props not found.

Cheers
Alessio

--
Alessio Soldano
Web Service Lead, JBoss

Reply via email to