commons-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Ganna Shmatova (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (JXPATH-183) XMLGregorianCalendar existence adding a lot of performance penalty
Date Tue, 24 Nov 2015 17:23:11 GMT

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

Mime
View raw message