[ 
https://issues.apache.org/jira/browse/XERCESJ-1449?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12874510#action_12874510
 ] 

Chris Simmons commented on XERCESJ-1449:
----------------------------------------

Actually the slowness seems to scale with the depth of the stack too.  If I add 
a bit of recursion to add 50 layers to the stack like this

  private static void runTests(final XML11Configuration config) throws 
IOException {
    runTests(config, 50);
  }

  private static void runTests(final XML11Configuration config, final int 
depth) throws IOException {
    if (depth == 0) {
      process(config, "string");
      process(config, "dateTime");
      process(config, "dateOrDateTime");  // Union (date, dateTime)
      process(config, "dateTimeOrDate");  // Union (dateTime, date)
    }
    else {
      runTests(config, depth - 1);
    }
  }

then it takes more like 8 times longer.  This is more like the performance I've 
seen in real life as the stack is likely to be deeper than in my original 
sample.

> Validation of schema type unions are relatively slow due to use of exceptions.
> ------------------------------------------------------------------------------
>
>                 Key: XERCESJ-1449
>                 URL: https://issues.apache.org/jira/browse/XERCESJ-1449
>             Project: Xerces2-J
>          Issue Type: Improvement
>          Components: XML Schema 1.0 Datatypes
>            Reporter: Chris Simmons
>         Attachments: XercesUnionPerformance.zip
>
>
> I'll shortly attach some example code which shows that validating
> 2010-01-01T00:00:00.000Z
> against the union (date, dateTime) is slower by a factor of three than 
> validating against (dateTime, date).
> This appears to be because if validation fails against the first member of 
> the union then an exception is thrown.
> It would therefor be quicker to change the simple type validation to allow an 
> error handler of some sort to be passed in so that union types will not have 
> to use exception handling when validating.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to