[
https://issues.apache.org/jira/browse/AXIS2-4878?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13037577#comment-13037577
]
Leon Fleysher commented on AXIS2-4878:
--------------------------------------
Please fix this bug -- it makes AXIS2 unusable for big XML files.
> Simple BeanInfo cache in BeanUtil.java helped us go from 48 second to 8
> second request
> --------------------------------------------------------------------------------------
>
> Key: AXIS2-4878
> URL: https://issues.apache.org/jira/browse/AXIS2-4878
> Project: Axis2
> Issue Type: Improvement
> Components: adb
> Affects Versions: 1.5.2
> Environment: Linux (Debian Lenny x86_64), JDK 1.6.0, Tomcat 6 (in
> NetBeans 6.5.1). Deployed POJO service as .aar file.
> Reporter: Dan Armstrong
> Original Estimate: 0.25h
> Remaining Estimate: 0.25h
>
> We return arrays of complex objects - all of the same type for any particular
> web services call. Axis2 was unusably slow. Upon closer inspection, it was
> spending much of its time in BeanUtil. The #1 problem is that it is
> performing introspection repeatedly for each and every object. Introspection
> is very expensive - calling the methods once you find them is cheap.
> The solution is to perform the introspection and cache the results. I added
> a few lines of code to BeanUtil.java and brought our request from 48 seconds
> down to 8. This solution may not be exactly how you would implement it, but
> the idea is sound and the results are very impressive:
> import java.util.concurrent.*;
> private static final ConcurrentMap<Class<?>,BeanInfo> beanInfoCache = new
> ConcurrentHashMap<Class<?>,BeanInfo>();
> // About line 140, where calls Introspector.getBeanInfo:
> BeanInfo beanInfo = beanInfoCache.get(beanClass);
> if(beanInfo==null) beanInfoCache.put(beanClass, beanInfo =
> Introspector.getBeanInfo(beanClass, beanClass.getSuperclass()));
> The map would probably need to use weak references to not prevent class
> unloading. And you may not want to depend on the Java 5 generics and
> concurrent collections. But the point remains - without this POJO is too
> slow (rhyme intended).
> Please add this to the Axis2 to benefit others.
> Thank you,
> Dan Armstrong
> AO Industries, Inc.
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]