I've been optimizing marshalling by extending ObjectInputStream and OutputStream, and overriding readClassDescriptor and writeClassDescriptor, only marshalling the classname rather than the whole shabang. I even keep a local cache of ObjectStreamClasses for readClassDescriptor to lookup at well (a ConcurrentHashMap).

Under load(150 threads), OptimizeIt is still showing readNonProxyDesc as a significant bottleneck (18% in some cases). I'm pretty sure that the problem is in ObjectStreamClass.load(Class, boolean) as there is a global cache for ObjectStreamClass and it is synchronized. Could OptimizeIt be lieing here? Would a simple get of an ObjectStreamClass Map with synchronized access really be such a culprit? To remove this, I have to totally pull and make copies of all affected files to change the cache to a ConcurrentReaderHashMap as non of this stuff is extendible as everything is either package protected or private.


-- ================ Bill Burke Chief Architect JBoss Group LLC. ================



-------------------------------------------------------
This SF.net email sponsored by: Enterprise Linux Forum Conference & Expo
The Event For Linux Datacenter Solutions & Strategies in The Enterprise Linux in the Boardroom; in the Front Office; & in the Server Room http://www.enterpriselinuxforum.com
_______________________________________________
JBoss-Development mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/jboss-development

Reply via email to