[ 
https://issues.apache.org/jira/browse/ODFTOOLKIT-473?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

fanliwen updated ODFTOOLKIT-473:
--------------------------------
    Description: 
Hi,

Class.forName may not be an efficient method. and in 
<code>org.odftoolkit.odfdom.pkg{color:#cc7832}.{color}OdfXMLFactory    
line:153<code> Class, it use Class.forName to find the Element/Atrribute Class. 
The <code>classCache</code> map make it better to find the Class. But we need a 
cache for Alien Element/Atrribute Class too, otherwise it will find the same 
alien Class by Class.forName again and again. It take too much of CPU cycle.

It show you in the attachment which a snapshot by JProfiler.It call the 
Class.forName 39459 times to find the same Class.

And this is my pull request in GitHub: 
https://github.com/apache/odftoolkit/pull/3

Regards.

ravenq.

  was:
Hi,

Class.forName may not be an efficient method. and in 
<code>org.odftoolkit.odfdom.pkg{color:#cc7832}.{color}OdfXMLFactory    
line:153<code> Class, it use Class.forName to find the Element/Atrribute Class. 
The <code>classCache</code> map make it better to find the Class. But we need a 
cache for Alien Element/Atrribute Class too, otherwise it will find the same 
alien Class by Class.forName again and again. It take too much of CPU cycle.

It show you in the attachment which a snapshot by JProfiler.It call the 
Class.forName 39459 times to find the same Class.

And this is my pull request in GitHub: 

Regards.

ravenq.


> cache alien element and attribute class to make it faster in OdfXMLFactory
> --------------------------------------------------------------------------
>
>                 Key: ODFTOOLKIT-473
>                 URL: https://issues.apache.org/jira/browse/ODFTOOLKIT-473
>             Project: ODF Toolkit
>          Issue Type: Improvement
>          Components: odfdom
>    Affects Versions: 0.6.2-incubating
>            Reporter: fanliwen
>            Priority: Major
>              Labels: performance
>             Fix For: 0.6.2-incubating
>
>         Attachments: alien-performance-jprofiler.png, 
> test-case-after-fix.png, test-case-befor-fix.png
>
>
> Hi,
> Class.forName may not be an efficient method. and in 
> <code>org.odftoolkit.odfdom.pkg{color:#cc7832}.{color}OdfXMLFactory    
> line:153<code> Class, it use Class.forName to find the Element/Atrribute 
> Class. The <code>classCache</code> map make it better to find the Class. But 
> we need a cache for Alien Element/Atrribute Class too, otherwise it will find 
> the same alien Class by Class.forName again and again. It take too much of 
> CPU cycle.
> It show you in the attachment which a snapshot by JProfiler.It call the 
> Class.forName 39459 times to find the same Class.
> And this is my pull request in GitHub: 
> https://github.com/apache/odftoolkit/pull/3
> Regards.
> ravenq.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to