[
https://issues.apache.org/jira/browse/JXPATH-183?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15024894#comment-15024894
]
Ganna Shmatova commented on JXPATH-183:
---------------------------------------
It was discovered in the logs:
{quote}
2015-11-24 11:16:19,928 INFO [[ACTIVE] ExecuteThread: '3' for queue:
'weblogic.kernel.Default (self-tuning)'] (Mapping.java:55) - [sessionID:
perf-test] [] Retrieving from base mapping
//LOB/account/accountIdentifier[type='A']
2015-11-24 11:16:24,056 INFO [[ACTIVE] ExecuteThread: '3' for queue:
'weblogic.kernel.Default (self-tuning)'] (Mapping.java:79) - [sessionID:
perf-test] [] Assigning mapping accountNumber [identifier] = 34256523
2015-11-24 11:16:24,059 INFO [[ACTIVE] ExecuteThread: '3' for queue:
'weblogic.kernel.Default (self-tuning)']
(MappedPreparedSelectStatement.java:54) - [sessionID: H] [] select ID1, ID2
from ACCOUNTS where LOB_ACCOUNT_NO='34256523' and LOB_ACCOUNT_TYPE_NAME='H'
2015-11-24 11:16:24,256 INFO [[ACTIVE] ExecuteThread: '3' for queue:
'weblogic.kernel.Default (self-tuning)'] (AudienceIdRetrieval.java:36) - Query
retrieved 0 records, and grabbed them in the following format:
2015-11-24 11:16:24,257 INFO [[ACTIVE] ExecuteThread: '3' for queue:
'weblogic.kernel.Default (self-tuning)'] (Mapping.java:55) - [sessionID:
perf-test] [] Retrieving from base mapping
//LOB/account/accountIdentifier[type='C']
2015-11-24 11:16:27,240 WARN [[ACTIVE] ExecuteThread: '3' for queue:
'weblogic.kernel.Default (self-tuning)'] (Mapping.java:84) - [sessionID:
perf-test] [] Base mapping [//LOB/account/accountIdentifier[type='C']] not
found
2015-11-24 11:16:27,242 WARN [[ACTIVE] ExecuteThread: '3' for queue:
'weblogic.kernel.Default (self-tuning)'] (MappingRetrieval.java:96) -
[sessionID: perf-test] [] Query [select ID1, ID2 from ACCOUNTS where
LOB_ACCOUNT_NO={accountNumber} and LOB_ACCOUNT_TYPE_NAME={accountType}] will
not be run because mapping [origin] could not be found
2015-11-24 11:16:27,242 INFO [[ACTIVE] ExecuteThread: '3' for queue:
'weblogic.kernel.Default (self-tuning)'] (Mapping.java:55) - [sessionID:
perf-test] [] Retrieving from base mapping
//LOB/account/accountIdentifier[type='B']
2015-11-24 11:16:30,167 WARN [[ACTIVE] ExecuteThread: '3' for queue:
'weblogic.kernel.Default (self-tuning)'] (Mapping.java:84) - [sessionID:
perf-test] [] Base mapping [//LOB/account/accountIdentifier[type='B']] not
found
{quote}
A 2-3 seconds request, when changed to have well formatted 4
XMLGregorianCalendars, ended up taking 53 seconds. (or 400ms > 10 seconds on
our fastest machines).
It only goes this slow when eclipse debug mode shows me XMLGregorianCalendar in
our 'buggy' fields (other times it is just null).
I tried to reproduce it standalone but it seems to not be just
XMLGregorianCalendar... hmm. Maybe was too simple a test object.
JVisualVM says most CPU use is at
org.apache.commons.jxpath.util.ValueUtils.getIndexedPropertyLength(), but
here's a picture of the snapshot: http://i.imgur.com/R8Icx8q.png
> XMLGregorianCalendar existence adding a lot of performance penalty
> ------------------------------------------------------------------
>
> Key: JXPATH-183
> URL: https://issues.apache.org/jira/browse/JXPATH-183
> Project: Commons JXPath
> Issue Type: Improvement
> Affects Versions: 1.3
> Environment: Windows 7, Amazon Unix, Weblogic
> Reporter: Ganna Shmatova
> Labels: performance
>
> We're using JXPath to parse some input from a client. When they give us a
> valid date it gets transformed from a SOAP message into Java objects. When
> this happens JXPath queries suddenly take 1-8 seconds more (depending on
> system -- the optimized system it's 1 second, dev & test machines it's 8).
> Kicker is, we don't even look for this field. Just its existence does it.
> (we've quickfixed to omit the xml tags before the string is parsed into Java
> for now)
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)