Maxim Zinal created JCR-3721:
--------------------------------

             Summary: Slow and actively called NodeId.toString()
                 Key: JCR-3721
                 URL: https://issues.apache.org/jira/browse/JCR-3721
             Project: Jackrabbit Content Repository
          Issue Type: Bug
          Components: jackrabbit-core
    Affects Versions: 2.7, 2.6.5
         Environment: Debian/GNU Linux 7.3 / Oracle JDK 7 / Apache Tomcat 7.0;
Windows Server 2008 / IBM WebSphere AppServer 7.0
            Reporter: Maxim Zinal


I performed some JackRabbit profiling while trying to investigate the reason of 
low performance of our application.

The mostly interesting thing I've found is that NodeId.toString() method is 
heavily used for hierarchy-based XPath queries, and it performs really bad.

This are the numbers for my test application:
 - Total CPU time: 879 178 msec
 - CPU time in NodeId.toString(), including subcalls: 223 705 msec

A quick check against NodeId.toString() implementation shows that it is based 
on UUID.toString(), which itself is very ineffective in both in Oracle and IBM 
JDK.

I've wrote a quick replacement for this method, and my measurements show that 
overall performance became significantly better for our case.

Hope that this will help to improve JackRabbit performance for similiar 
applications.



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)

Reply via email to