[ 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)