[prev in list] [next in list] [prev in thread] [next in thread] 

List:       xmlbeans-dev
Subject:    [jira] [Commented] (XMLBEANS-389) List accessors generated with
From:       "Eric Schwarzenbach (JIRA)" <xmlbeans-dev () xml ! apache ! org>
Date:       2011-09-20 20:58:09
Message-ID: 774251123.47585.1316552289203.JavaMail.tomcat () hel ! zones ! apache ! org
[Download RAW message or body]


    [ https://issues.apache.org/jira/browse/XMLBEANS-389?page=com.atlassian.jira.plugi \
n.system.issuetabpanels:comment-tabpanel&focusedCommentId=13108996#comment-13108996 ] \


Eric Schwarzenbach commented on XMLBEANS-389:
---------------------------------------------

I for one would appreciate an answer to that last question: "Is there a reason that \
XMLBeans marks array features as deprecated?"

It seems particularly bad that the list implementation is so weak in light of the \
deprecation. I've been switching over my code to use the list functions instead of \
the array functions, guided by that deprecation. It also seems that you cannot remove \
items through the list interface (maybe there's another issue on that...I'm still \
googling after having run into that, which lead me here).

> List accessors generated with -javasource=1.5 produce lists that scale poorly with \
>                 the size of the list
> -------------------------------------------------------------------------------------------------------
>  
> Key: XMLBEANS-389
> URL: https://issues.apache.org/jira/browse/XMLBEANS-389
> Project: XMLBeans
> Issue Type: Bug
> Components: Compiler
> Affects Versions: Version 2, Version 2.1, Version 2.2, Version 2.2.1,  Version 2.3, \
>                 Version 2.3.1, Version 2.4 , Version 2.4.1 
> Reporter: Philip Aston
> Attachments: testcase.tgz
> 
> 
> When a schema is compiled with -javasource=1.5, convenient list based accessors are \
> generated as well as the array accessors. E.g.  java.util.List<java.lang.String> \
> getParamList() The implementation of the List is built upon java.lang.AbstractList. \
> The AbstractList iterator's hasNext() method calls size(). For an XMLBean generated \
> list, size() walks the store and so iteration scales quadratically. Here are some \
> numbers showing the problem: XMLBeans backed list of 1 strings: 0.013766 ms
> XMLBeans backed list of 16 strings: 0.255458 ms
> XMLBeans backed list of 256 strings: 1.612057 ms
> XMLBeans backed list of 1024 strings: 25.458934 ms
> XMLBeans backed list of 2048 strings: 123.393447 ms
> XMLBeans backed list of 4096 strings: 505.594661 ms
> plain list of 1 strings: 0.002304 ms
> plain list of 16 strings: 0.007788 ms
> plain list of 256 strings: 0.013384 ms 
> plain list of 1024 strings: 0.052215 ms 
> plain list of 2048 strings: 0.103550 ms
> plain list of 4096 strings: 0.206648 ms
> I think the generated list should override iterator(), and return an Iterator that \
> calculates the list size once per iteration.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@xmlbeans.apache.org
For additional commands, e-mail: dev-help@xmlbeans.apache.org


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic