<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.openoffice.org/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Zengliangjun</id>
	<title>Apache OpenOffice Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.openoffice.org/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Zengliangjun"/>
	<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/wiki/Special:Contributions/Zengliangjun"/>
	<updated>2026-05-05T17:11:20Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.35.14</generator>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=Performance/load_performance_implement&amp;diff=189636</id>
		<title>Performance/load performance implement</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=Performance/load_performance_implement&amp;diff=189636"/>
		<updated>2010-12-06T09:12:42Z</updated>

		<summary type="html">&lt;p&gt;Zengliangjun: /* Plan */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Performance}}&lt;br /&gt;
Please view [[Performance/load_performance_analysis]] about analysis. This document explain implement and some discussion.&lt;br /&gt;
&lt;br /&gt;
= Implement =&lt;br /&gt;
&lt;br /&gt;
== Collect data  throught sax: ==&lt;br /&gt;
* The first step is simple, and no more problem.&lt;br /&gt;
* We can collect valid data information to a data structure throught sax parser, the structure&amp;#039;s elements can be queried quickly by location  identified. I select the vector, now.&lt;br /&gt;
* The  element has these base fields:&lt;br /&gt;
**  sal_uInt16 m_prefix;&lt;br /&gt;
**  rtl_uString* mp_localName;&lt;br /&gt;
**  sal_uInt32 m_local;&lt;br /&gt;
**  sal_uInt32 m_distance;&lt;br /&gt;
**  sal_uInt32 m_count;&lt;br /&gt;
**  and other fields such as namespace / full name / cached token enum ...&lt;br /&gt;
&lt;br /&gt;
== Processing method ==&lt;br /&gt;
* We can go through the result&amp;#039;s element by element&amp;#039;s &amp;quot;m_local&amp;quot; &amp;quot;m_distance&amp;quot; &amp;quot;m_count&amp;quot;; Get parent element and subelements.&lt;br /&gt;
* Every element&amp;#039;s processing that has two process steps: &lt;br /&gt;
** Process itself , process the attribute and process subelements.&lt;br /&gt;
** The result information commit to the parent element.&lt;br /&gt;
[[Image:Odfcontext Process Implement.jpg]]&lt;br /&gt;
&lt;br /&gt;
*** processElement() : Process element&lt;br /&gt;
**** _startElement() : Start element&lt;br /&gt;
**** processSubContexts() : If this element is a parent element, subelements process; every subelement processing will be divided into three steps.&lt;br /&gt;
***** _createChildContext(): Create son context &lt;br /&gt;
***** _processSubContext(): Process subelement &lt;br /&gt;
***** _collectSubContext(): Collect the subelement&amp;#039;s result data &lt;br /&gt;
**** _characters(): Process element&amp;#039;s content&lt;br /&gt;
**** _endElement(): End element&lt;br /&gt;
*** commit(): commit the result data to parent element&lt;br /&gt;
&lt;br /&gt;
=== Solutions ===&lt;br /&gt;
An element has three solutions, Serial / Parallel / delayed processing.&lt;br /&gt;
==== Serial processing ====&lt;br /&gt;
* Every element will be same processing. As current processing end, back to parent. The parent will jump to next son processing if has next, or back to parent&amp;#039;s parent.&lt;br /&gt;
==== Parallel processing ====&lt;br /&gt;
* One element that has many subelements, will split every subelement&amp;#039;s  &amp;quot;_processSubContext()&amp;quot; into different work thread. When all subelements end, the &amp;quot;_collectSubContext()&amp;quot; will be serial processing.&lt;br /&gt;
==== Delayed processing ====&lt;br /&gt;
* One element that has many subelements, the first subelement will process and the others will delay to the document processing end. &lt;br /&gt;
&lt;br /&gt;
== Processing ==&lt;br /&gt;
* It is serial processing to the interests of the whole.&lt;br /&gt;
** We know an odf document will be four base parts : &amp;quot;meta&amp;quot;  &amp;quot;settings&amp;quot;  &amp;quot;styles&amp;quot;  &amp;quot;content&amp;quot;. &lt;br /&gt;
** The dependent relation is :	&amp;quot;content&amp;quot; -&amp;gt; &amp;quot;styles&amp;quot; -&amp;gt; &amp;quot;settings&amp;quot; -&amp;gt; &amp;quot;meta&amp;quot;( I think it is no more problem -:) )&lt;br /&gt;
** So It will be same as now &amp;quot;meta&amp;quot;  -&amp;gt; &amp;quot;settings&amp;quot; -&amp;gt; &amp;quot;styles&amp;quot; -&amp;gt; &amp;quot;content&amp;quot;.&lt;br /&gt;
	&lt;br /&gt;
* To every part parallel processing ,that will be possible. &lt;br /&gt;
** Meta part, Settings part and Styles part those can be &amp;quot;Parallel processing&amp;quot;.&lt;br /&gt;
** I think it can be &amp;quot;Parallel processing&amp;quot; or &amp;quot;Delayed processing&amp;quot;, Conent part; No other part depend this part.&lt;br /&gt;
 &lt;br /&gt;
= Difficulty =&lt;br /&gt;
&lt;br /&gt;
== Meta part ==&lt;br /&gt;
* We know &amp;quot;&amp;lt;office:meta&amp;gt;&amp;quot; , it&amp;#039;s subelements is like &amp;quot;&amp;lt;meta:*&amp;gt;&amp;quot;. I think the subelements has no correlation between. That can be parallel processing.&lt;br /&gt;
* Currently, this part process a DOM object, I do&amp;#039;t know why. So this part is serial processing, now.&lt;br /&gt;
&lt;br /&gt;
== Settings part ==&lt;br /&gt;
* The &amp;quot;&amp;lt;office:settings&amp;gt;&amp;quot;, every subelement of that will get an &amp;quot;beans::PropertyValue&amp;quot;. It can be parallel processing.&lt;br /&gt;
&lt;br /&gt;
== Styles part and Conent part ==&lt;br /&gt;
* The object from sfx2 , sd , sc and sw; It is complex. &lt;br /&gt;
&lt;br /&gt;
= Plan =&lt;br /&gt;
* Implement almost source code about sd to plan.&lt;br /&gt;
* Debug the Serial processing process is right.&lt;br /&gt;
* Try to test Parallel processing. &lt;br /&gt;
* Try to analysis the Delayed processing is feasibility.[[Performance/load_performance_implement_2]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Performance]]&lt;/div&gt;</summary>
		<author><name>Zengliangjun</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=Performance/load_performance_implement_2&amp;diff=189635</id>
		<title>Performance/load performance implement 2</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=Performance/load_performance_implement_2&amp;diff=189635"/>
		<updated>2010-12-06T09:04:08Z</updated>

		<summary type="html">&lt;p&gt;Zengliangjun: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Please view [[Performance/load_performance_analysis]] about analysis. This document explain implement and some discussion.&lt;br /&gt;
&lt;br /&gt;
And This document is my second plan.&lt;br /&gt;
&lt;br /&gt;
[[File:Lag_load.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Performance]]&lt;/div&gt;</summary>
		<author><name>Zengliangjun</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=Performance/load_performance_implement_2&amp;diff=189466</id>
		<title>Performance/load performance implement 2</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=Performance/load_performance_implement_2&amp;diff=189466"/>
		<updated>2010-12-02T09:00:27Z</updated>

		<summary type="html">&lt;p&gt;Zengliangjun: Created page with &amp;#039;Please view Performance/load_performance_analysis about analysis. This document explain implement and some discussion.  And This document is my second plan.  [[File:Lag_load.…&amp;#039;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Please view [[Performance/load_performance_analysis]] about analysis. This document explain implement and some discussion.&lt;br /&gt;
&lt;br /&gt;
And This document is my second plan.&lt;br /&gt;
&lt;br /&gt;
[[File:Lag_load.jpg]]&lt;/div&gt;</summary>
		<author><name>Zengliangjun</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=File:Lag_load.jpg&amp;diff=189465</id>
		<title>File:Lag load.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=File:Lag_load.jpg&amp;diff=189465"/>
		<updated>2010-12-02T08:59:49Z</updated>

		<summary type="html">&lt;p&gt;Zengliangjun: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Zengliangjun</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=Performance/load_performance_implement_parallel_mutex&amp;diff=169893</id>
		<title>Performance/load performance implement parallel mutex</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=Performance/load_performance_implement_parallel_mutex&amp;diff=169893"/>
		<updated>2010-05-31T05:05:22Z</updated>

		<summary type="html">&lt;p&gt;Zengliangjun: /* Solve C */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Performance}}&lt;br /&gt;
Please view [[Performance/load_performance_implement]] about implement. This document explain parallel and dead lock problem and resolve plan.&lt;br /&gt;
&lt;br /&gt;
= Problem =&lt;br /&gt;
Now I&amp;#039;d finished the part of odf impress&amp;#039;s code, and wish is: &lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;settings.xml&amp;#039;&amp;#039;&amp;#039; when processing the &amp;lt;office:settings&amp;gt; element, it&amp;#039;s subelement will be parallel processed.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;styles.xml&amp;#039;&amp;#039;&amp;#039; when processing the &amp;lt;office:styles&amp;gt; and &amp;lt;office:automatic-styles&amp;gt; and &amp;lt;office:master-styles&amp;gt; elements, it&amp;#039;s subelement will be parallel processed.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;content.xml&amp;#039;&amp;#039;&amp;#039; when processing the &amp;lt;office:presentation&amp;gt;  and styles&amp;#039;s elements, it&amp;#039;s subelement will be parallel processed.&lt;br /&gt;
&lt;br /&gt;
When running, that will dead lock.&lt;br /&gt;
&lt;br /&gt;
= Analysis =&lt;br /&gt;
We can understand OOo had three type mutex.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039; Global Mutex&amp;#039;&amp;#039;&amp;#039;: It can be get from &amp;#039;&amp;#039;&amp;#039;osl::Mutex::getGlobalMutex()&amp;#039;&amp;#039;&amp;#039;, and can be used at a simple critical which lock section no other mutex.&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Solar Mutex&amp;#039;&amp;#039;&amp;#039;: It can be get from &amp;#039;&amp;#039;&amp;#039;Application::GetSolarMutex()&amp;#039;&amp;#039;&amp;#039;, and can be used any where. which lock section can had other mutex, and can be spin lock. It&amp;#039;s used at the uno implement class&amp;#039;s method section, main function is synchronization UNO environment.&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;General Mutex&amp;#039;&amp;#039;&amp;#039;: It can be used other thread and OOo main thread, etc. Which can be as same type.&lt;br /&gt;
&lt;br /&gt;
So, Dead lock will be, It like this:&lt;br /&gt;
&lt;br /&gt;
[[Image:Parallel dead lock.jpg]]&lt;br /&gt;
&lt;br /&gt;
= Solve =&lt;br /&gt;
It will be new parallel_mutex model, so we must let the &amp;#039;Solar Mutex&amp;#039; will not acquire at parallel section; It is ease. &lt;br /&gt;
&lt;br /&gt;
[[Image:Parallel dead lock solve.JPG]]&lt;br /&gt;
&lt;br /&gt;
== Problem ==&lt;br /&gt;
But there will synchronization problem; where the base struct like svarray(svl) and std::vector etc. be there.&lt;br /&gt;
&lt;br /&gt;
== Solve A ==&lt;br /&gt;
We must let the &amp;#039;Solar Mutex&amp;#039; synchronization at parallel section, so there are an other mutex object.&lt;br /&gt;
&lt;br /&gt;
So we can design &amp;#039;Solar Mutex&amp;#039; has two mutex objects, One synchronize at general section and One synchronize at parallel section. How &amp;#039;Solar Mutex&amp;#039; can know it is general or parallel section; there are function &amp;#039;&amp;#039;omp_in_parallel()&amp;#039;&amp;#039; in OpenMP . Now It like this:&lt;br /&gt;
&lt;br /&gt;
[[Image:Parallel dead lock solve 1.JPG]]&lt;br /&gt;
&lt;br /&gt;
Ok, that is right, Yes it not wrong. But performance no improve. I think it is that the synchronize section is much block. So the processing is multithread, But all most time only one thread can runing, and other thread is block.&lt;br /&gt;
&lt;br /&gt;
== Solve B ==&lt;br /&gt;
Can we let those structs are all thread safe? &lt;br /&gt;
That can improve the performance? The consuming from thread safe will ....&lt;br /&gt;
And Do that can solve this problem?&lt;br /&gt;
&lt;br /&gt;
== Solve C ==&lt;br /&gt;
Can we think the relation like document -&amp;gt; page -&amp;gt; shape -&amp;gt; ....&lt;br /&gt;
&lt;br /&gt;
When create one shape, the document will add some info about shape, So document&amp;#039;s data will be in multi-thread context. Can we reorder the operator create the relation of document with shape, let that will be at the page had process finished.&lt;br /&gt;
&lt;br /&gt;
[[Category:Performance]]&lt;/div&gt;</summary>
		<author><name>Zengliangjun</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=Performance/load_performance_implement_parallel_mutex&amp;diff=169892</id>
		<title>Performance/load performance implement parallel mutex</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=Performance/load_performance_implement_parallel_mutex&amp;diff=169892"/>
		<updated>2010-05-31T03:28:36Z</updated>

		<summary type="html">&lt;p&gt;Zengliangjun: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Performance}}&lt;br /&gt;
Please view [[Performance/load_performance_implement]] about implement. This document explain parallel and dead lock problem and resolve plan.&lt;br /&gt;
&lt;br /&gt;
= Problem =&lt;br /&gt;
Now I&amp;#039;d finished the part of odf impress&amp;#039;s code, and wish is: &lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;settings.xml&amp;#039;&amp;#039;&amp;#039; when processing the &amp;lt;office:settings&amp;gt; element, it&amp;#039;s subelement will be parallel processed.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;styles.xml&amp;#039;&amp;#039;&amp;#039; when processing the &amp;lt;office:styles&amp;gt; and &amp;lt;office:automatic-styles&amp;gt; and &amp;lt;office:master-styles&amp;gt; elements, it&amp;#039;s subelement will be parallel processed.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;content.xml&amp;#039;&amp;#039;&amp;#039; when processing the &amp;lt;office:presentation&amp;gt;  and styles&amp;#039;s elements, it&amp;#039;s subelement will be parallel processed.&lt;br /&gt;
&lt;br /&gt;
When running, that will dead lock.&lt;br /&gt;
&lt;br /&gt;
= Analysis =&lt;br /&gt;
We can understand OOo had three type mutex.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039; Global Mutex&amp;#039;&amp;#039;&amp;#039;: It can be get from &amp;#039;&amp;#039;&amp;#039;osl::Mutex::getGlobalMutex()&amp;#039;&amp;#039;&amp;#039;, and can be used at a simple critical which lock section no other mutex.&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Solar Mutex&amp;#039;&amp;#039;&amp;#039;: It can be get from &amp;#039;&amp;#039;&amp;#039;Application::GetSolarMutex()&amp;#039;&amp;#039;&amp;#039;, and can be used any where. which lock section can had other mutex, and can be spin lock. It&amp;#039;s used at the uno implement class&amp;#039;s method section, main function is synchronization UNO environment.&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;General Mutex&amp;#039;&amp;#039;&amp;#039;: It can be used other thread and OOo main thread, etc. Which can be as same type.&lt;br /&gt;
&lt;br /&gt;
So, Dead lock will be, It like this:&lt;br /&gt;
&lt;br /&gt;
[[Image:Parallel dead lock.jpg]]&lt;br /&gt;
&lt;br /&gt;
= Solve =&lt;br /&gt;
It will be new parallel_mutex model, so we must let the &amp;#039;Solar Mutex&amp;#039; will not acquire at parallel section; It is ease. &lt;br /&gt;
&lt;br /&gt;
[[Image:Parallel dead lock solve.JPG]]&lt;br /&gt;
&lt;br /&gt;
== Problem ==&lt;br /&gt;
But there will synchronization problem; where the base struct like svarray(svl) and std::vector etc. be there.&lt;br /&gt;
&lt;br /&gt;
== Solve A ==&lt;br /&gt;
We must let the &amp;#039;Solar Mutex&amp;#039; synchronization at parallel section, so there are an other mutex object.&lt;br /&gt;
&lt;br /&gt;
So we can design &amp;#039;Solar Mutex&amp;#039; has two mutex objects, One synchronize at general section and One synchronize at parallel section. How &amp;#039;Solar Mutex&amp;#039; can know it is general or parallel section; there are function &amp;#039;&amp;#039;omp_in_parallel()&amp;#039;&amp;#039; in OpenMP . Now It like this:&lt;br /&gt;
&lt;br /&gt;
[[Image:Parallel dead lock solve 1.JPG]]&lt;br /&gt;
&lt;br /&gt;
Ok, that is right, Yes it not wrong. But performance no improve. I think it is that the synchronize section is much block. So the processing is multithread, But all most time only one thread can runing, and other thread is block.&lt;br /&gt;
&lt;br /&gt;
== Solve B ==&lt;br /&gt;
Can we let those structs are all thread safe? &lt;br /&gt;
That can improve the performance? The consuming from thread safe will ....&lt;br /&gt;
And Do that can solve this problem?&lt;br /&gt;
&lt;br /&gt;
== Solve C ==&lt;br /&gt;
Can we think the relation like document -&amp;gt; page -&amp;gt; shape -&amp;gt; ....&lt;br /&gt;
That create one shape and the document will add some info about shape, So document&amp;#039;s data will be multi-thread. Can we reorder the operator create the relation of document with shape, let that will be at the page had process finished.&lt;br /&gt;
&lt;br /&gt;
[[Category:Performance]]&lt;/div&gt;</summary>
		<author><name>Zengliangjun</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=File:Parallel_dead_lock_solve.JPG&amp;diff=169891</id>
		<title>File:Parallel dead lock solve.JPG</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=File:Parallel_dead_lock_solve.JPG&amp;diff=169891"/>
		<updated>2010-05-31T02:56:29Z</updated>

		<summary type="html">&lt;p&gt;Zengliangjun: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Zengliangjun</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=Performance/load_performance_implement_parallel_mutex&amp;diff=169890</id>
		<title>Performance/load performance implement parallel mutex</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=Performance/load_performance_implement_parallel_mutex&amp;diff=169890"/>
		<updated>2010-05-31T02:29:45Z</updated>

		<summary type="html">&lt;p&gt;Zengliangjun: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Performance}}&lt;br /&gt;
Please view [[Performance/load_performance_implement]] about implement. This document explain parallel and dead lock problem and resolve plan.&lt;br /&gt;
&lt;br /&gt;
= Problem =&lt;br /&gt;
Now I&amp;#039;d finished the part of odf impress&amp;#039;s code, and wish is: &lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;settings.xml&amp;#039;&amp;#039;&amp;#039; when processing the &amp;lt;office:settings&amp;gt; element, it&amp;#039;s subelement will be parallel processed.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;styles.xml&amp;#039;&amp;#039;&amp;#039; when processing the &amp;lt;office:styles&amp;gt; and &amp;lt;office:automatic-styles&amp;gt; and &amp;lt;office:master-styles&amp;gt; elements, it&amp;#039;s subelement will be parallel processed.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;content.xml&amp;#039;&amp;#039;&amp;#039; when processing the &amp;lt;office:presentation&amp;gt;  and styles&amp;#039;s elements, it&amp;#039;s subelement will be parallel processed.&lt;br /&gt;
&lt;br /&gt;
When running, that will dead lock.&lt;br /&gt;
&lt;br /&gt;
= Analysis =&lt;br /&gt;
We can understand OOo had three type mutex.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039; Global Mutex&amp;#039;&amp;#039;&amp;#039;: It can be get from &amp;#039;&amp;#039;&amp;#039;osl::Mutex::getGlobalMutex()&amp;#039;&amp;#039;&amp;#039;, and can be used at a simple critical which lock section no other mutex.&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Solar Mutex&amp;#039;&amp;#039;&amp;#039;: It can be get from &amp;#039;&amp;#039;&amp;#039;Application::GetSolarMutex()&amp;#039;&amp;#039;&amp;#039;, and can be used any where. which lock section can had other mutex, and can be spin lock. It&amp;#039;s used at the uno implement class&amp;#039;s method section, main function is synchronization UNO environment.&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;General Mutex&amp;#039;&amp;#039;&amp;#039;: It can be used other thread and OOo main thread, etc. Which can be as same type.&lt;br /&gt;
&lt;br /&gt;
So, Dead lock will be, It like this:&lt;br /&gt;
&lt;br /&gt;
[[Image:Parallel dead lock.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Solve A plan =&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;The First:&amp;#039;&amp;#039;&amp;#039; So we must let the &amp;#039;Solar Mutex&amp;#039; will not acquire at parallel section, It is ease. &lt;br /&gt;
&lt;br /&gt;
But there will synchronization problem; where the base struct like svarray(svl) and std::vector etc. be there.&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;The Second:&amp;#039;&amp;#039;&amp;#039; We must let the &amp;#039;Solar Mutex&amp;#039; synchronization at parallel section, so there are an other mutex object.&lt;br /&gt;
&lt;br /&gt;
So we can design &amp;#039;Solar Mutex&amp;#039; has two mutex objects, One synchronize at general section and One synchronize at parallel section. How &amp;#039;Solar Mutex&amp;#039; can know it is general or parallel section; there are function &amp;#039;&amp;#039;omp_in_parallel()&amp;#039;&amp;#039; in OpenMP . Now It like this:&lt;br /&gt;
&lt;br /&gt;
[[Image:Parallel dead lock solve 1.JPG]]&lt;br /&gt;
&lt;br /&gt;
Ok, that seem is right, Yes it not wrong. But performance no improve. I think it is that the synchronize section is much block. So the processing is multithread, But all most time only one thread can runing, and other thread is block.&lt;br /&gt;
&lt;br /&gt;
So I design the new mutex model, and will test it right or no.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Performance]]&lt;/div&gt;</summary>
		<author><name>Zengliangjun</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=Performance/load_performance_implement_parallel_mutex&amp;diff=169889</id>
		<title>Performance/load performance implement parallel mutex</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=Performance/load_performance_implement_parallel_mutex&amp;diff=169889"/>
		<updated>2010-05-31T01:56:02Z</updated>

		<summary type="html">&lt;p&gt;Zengliangjun: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Performance}}&lt;br /&gt;
Please view [[Performance/load_performance_implement]] about implement. This document explain parallel and dead lock problem and resolve plan.&lt;br /&gt;
&lt;br /&gt;
= Problem =&lt;br /&gt;
Now I&amp;#039;d finished the part of odf impress&amp;#039;s code, and wish is: &lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;settings.xml&amp;#039;&amp;#039;&amp;#039; when processing the &amp;lt;office:settings&amp;gt; element, it&amp;#039;s subelement will be parallel processed.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;styles.xml&amp;#039;&amp;#039;&amp;#039; when processing the &amp;lt;office:styles&amp;gt; and &amp;lt;office:automatic-styles&amp;gt; and &amp;lt;office:master-styles&amp;gt; elements, it&amp;#039;s subelement will be parallel processed.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;content.xml&amp;#039;&amp;#039;&amp;#039; when processing the &amp;lt;office:presentation&amp;gt;  and styles&amp;#039;s elements, it&amp;#039;s subelement will be parallel processed.&lt;br /&gt;
&lt;br /&gt;
When running, that will dead lock.&lt;br /&gt;
&lt;br /&gt;
= Analysis =&lt;br /&gt;
We can understand OOo had three type mutex.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039; Global Mutex&amp;#039;&amp;#039;&amp;#039;: It can be get from &amp;#039;&amp;#039;&amp;#039;osl::Mutex::getGlobalMutex()&amp;#039;&amp;#039;&amp;#039;, and can be used at a simple critical which lock section no other mutex.&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Solar Mutex&amp;#039;&amp;#039;&amp;#039;: It can be get from &amp;#039;&amp;#039;&amp;#039;Application::GetSolarMutex()&amp;#039;&amp;#039;&amp;#039;, and can be used any where. which lock section can had other mutex, and can be spin lock. It&amp;#039;s used at the uno implement class&amp;#039;s method section, main function is synchronization UNO environment.&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;General Mutex&amp;#039;&amp;#039;&amp;#039;: It can be used other thread and OOo main thread, etc. Which can be as same type.&lt;br /&gt;
&lt;br /&gt;
So, Dead lock will be, It like this:&lt;br /&gt;
&lt;br /&gt;
[[Image:Parallel dead lock.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Solve A plan =&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;The First:&amp;#039;&amp;#039;&amp;#039; So we must let the &amp;#039;Solar Mutex&amp;#039; will not acquire at parallel section, It is ease. &lt;br /&gt;
&lt;br /&gt;
But there will synchronization problem; where the base struct like svarray(svl) and std::vector etc. be there.&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;The Second:&amp;#039;&amp;#039;&amp;#039; We must let the &amp;#039;Solar Mutex&amp;#039; synchronization at parallel section, so there are an other mutex object.&lt;br /&gt;
&lt;br /&gt;
So we can design &amp;#039;Solar Mutex&amp;#039; has two mutex objects, One synchronize at general section and One synchronize at parallel section. How &amp;#039;Solar Mutex&amp;#039; can know it is general or parallel section; we can register the parallel thread to &amp;#039;Solar Mutex&amp;#039;. Now It like this:&lt;br /&gt;
&lt;br /&gt;
[[Image:Parallel dead lock solve 1.JPG]]&lt;br /&gt;
&lt;br /&gt;
Ok, that seem is right, Yes it not wrong. But performance no improve. I think it is that the synchronize section is much block. So the processing is multithread, But all most time only one thread can runing, and other thread is block.&lt;br /&gt;
&lt;br /&gt;
So I design the new mutex model, and will test it right or no.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Performance]]&lt;/div&gt;</summary>
		<author><name>Zengliangjun</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=File:Parallel_dead_lock_solve_1.JPG&amp;diff=169888</id>
		<title>File:Parallel dead lock solve 1.JPG</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=File:Parallel_dead_lock_solve_1.JPG&amp;diff=169888"/>
		<updated>2010-05-31T01:50:58Z</updated>

		<summary type="html">&lt;p&gt;Zengliangjun: uploaded a new version of &amp;quot;File:Parallel dead lock solve 1.JPG&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Zengliangjun</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=Performance/load_performance_implement_parallel_mutex&amp;diff=169371</id>
		<title>Performance/load performance implement parallel mutex</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=Performance/load_performance_implement_parallel_mutex&amp;diff=169371"/>
		<updated>2010-05-28T08:56:04Z</updated>

		<summary type="html">&lt;p&gt;Zengliangjun: (checkpoint save)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Performance}}&lt;br /&gt;
Please view [[Performance/load_performance_implement]] about implement. This document explain parallel and dead lock problem and resolve plan.&lt;br /&gt;
&lt;br /&gt;
= Problem =&lt;br /&gt;
Now I&amp;#039;d finished the part of odf impress&amp;#039;s code, and wish is: &lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;settings.xml&amp;#039;&amp;#039;&amp;#039; when processing the &amp;lt;office:settings&amp;gt; element, it&amp;#039;s subelement will be parallel processed.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;styles.xml&amp;#039;&amp;#039;&amp;#039; when processing the &amp;lt;office:styles&amp;gt; and &amp;lt;office:automatic-styles&amp;gt; and &amp;lt;office:master-styles&amp;gt; elements, it&amp;#039;s subelement will be parallel processed.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;content.xml&amp;#039;&amp;#039;&amp;#039; when processing the &amp;lt;office:presentation&amp;gt;  and styles&amp;#039;s elements, it&amp;#039;s subelement will be parallel processed.&lt;br /&gt;
&lt;br /&gt;
When running, that will dead lock.&lt;br /&gt;
&lt;br /&gt;
= Analysis =&lt;br /&gt;
We can understand OOo had three type mutex.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039; Global Mutex&amp;#039;&amp;#039;&amp;#039;: It can be get from &amp;#039;&amp;#039;&amp;#039;osl::Mutex::getGlobalMutex()&amp;#039;&amp;#039;&amp;#039;, and can be used at a simple critical which lock section no other mutex.&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Solar Mutex&amp;#039;&amp;#039;&amp;#039;: It can be get from &amp;#039;&amp;#039;&amp;#039;Application::GetSolarMutex()&amp;#039;&amp;#039;&amp;#039;, and can be used any where. which lock section can had other mutex, and can be spin lock. It&amp;#039;s used at the uno implement class&amp;#039;s method section, main function is synchronization UNO environment.&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;General Mutex&amp;#039;&amp;#039;&amp;#039;: It can be used other thread and OOo main thread, etc. Which can be as same type.&lt;br /&gt;
&lt;br /&gt;
So, Dead lock will be, It like this:&lt;br /&gt;
&lt;br /&gt;
[[Image:Parallel dead lock.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Solve A plan =&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;The First:&amp;#039;&amp;#039;&amp;#039; So we must let the &amp;#039;Solar Mutex&amp;#039; will not acquire at parallel section, It is ease. &lt;br /&gt;
&lt;br /&gt;
But there will synchronization problem; where the memory, and other error will be there.&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;The Second:&amp;#039;&amp;#039;&amp;#039; We must let the &amp;#039;Solar Mutex&amp;#039; synchronization at parallel section, so there are an other mutex object.&lt;br /&gt;
&lt;br /&gt;
So we can design &amp;#039;Solar Mutex&amp;#039; has two mutex objects, One synchronize at general section and One synchronize at parallel section. How &amp;#039;Solar Mutex&amp;#039; can know it is general or parallel section; we can register the parallel thread to &amp;#039;Solar Mutex&amp;#039;. Now It like this:&lt;br /&gt;
&lt;br /&gt;
[[Image:Parallel dead lock solve 1.JPG]]&lt;br /&gt;
&lt;br /&gt;
Ok, that seem is right, Yes it not wrong. But performance no improve. I think it is that the synchronize section is much block. So the processing is multithread, But all most time only one thread can runing, and other thread is block.&lt;br /&gt;
&lt;br /&gt;
So I design the new mutex model, and will test it right or no.&lt;br /&gt;
= Solve B plan =&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;The First:&amp;#039;&amp;#039;&amp;#039; &lt;br /&gt;
OOo use class &amp;#039;Guard&amp;#039; to lock section. Can we register the first &amp;#039;Guard&amp;#039; on mutex object, in the sub section a new &amp;#039;Guard&amp;#039; can know this mutex had locked. So it will n&amp;#039;t call the mutex acquire. When &amp;#039;Guard&amp;#039; destory it will know it is the register &amp;#039;Guard&amp;#039; or no, It will release the mutex as true.&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;The Second:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
We will define five type mutex.&lt;br /&gt;
&lt;br /&gt;
(1) &amp;#039;&amp;#039;&amp;#039;Simple Mutex:&amp;#039;&amp;#039;&amp;#039; like the abover description.&lt;br /&gt;
&lt;br /&gt;
(2) &amp;#039;&amp;#039;&amp;#039;Parallel Mutex:&amp;#039;&amp;#039;&amp;#039; It&amp;#039;s only used at the parallel section, it will be invalid.&lt;br /&gt;
&lt;br /&gt;
(3) &amp;#039;&amp;#039;&amp;#039;Global Mutex:&amp;#039;&amp;#039;&amp;#039; like OOo now, but when it used at the parallel section, it will used &amp;#039;Parallel Mutex&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
(4) &amp;#039;&amp;#039;&amp;#039;Solar Mutex:&amp;#039;&amp;#039;&amp;#039; like OOo now, but when it used at the parallel section, it will be invalid.&lt;br /&gt;
&lt;br /&gt;
(5) &amp;#039;&amp;#039;&amp;#039;General Mutex:&amp;#039;&amp;#039;&amp;#039; like OOo now, but when it used at the parallel section, it will used &amp;#039;Parallel Mutex&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
So &amp;#039;Parallel Mutex&amp;#039; will be used to synchronization the resource like &amp;#039;memory&amp;#039; and &amp;#039;ref count&amp;#039; and &amp;#039;svarry&amp;#039; etc. at the parallel section .&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Performance]]&lt;/div&gt;</summary>
		<author><name>Zengliangjun</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=Performance/load_performance_implement_parallel_mutex&amp;diff=169370</id>
		<title>Performance/load performance implement parallel mutex</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=Performance/load_performance_implement_parallel_mutex&amp;diff=169370"/>
		<updated>2010-05-28T08:50:18Z</updated>

		<summary type="html">&lt;p&gt;Zengliangjun: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Performance}}&lt;br /&gt;
Please view [[Performance/load_performance_implement]] about implement. This document explain parallel and dead lock problem and resolve plan.&lt;br /&gt;
&lt;br /&gt;
= Problem =&lt;br /&gt;
Now I&amp;#039;d finished the part of odf impress&amp;#039;s code, and wish is: &lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;settings.xml&amp;#039;&amp;#039;&amp;#039; when processing the &amp;lt;office:settings&amp;gt; element, it&amp;#039;s subelement will be parallel processed.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;styles.xml&amp;#039;&amp;#039;&amp;#039; when processing the &amp;lt;office:styles&amp;gt; and &amp;lt;office:automatic-styles&amp;gt; and &amp;lt;office:master-styles&amp;gt; elements, it&amp;#039;s subelement will be parallel processed.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;content.xml&amp;#039;&amp;#039;&amp;#039; when processing the &amp;lt;office:presentation&amp;gt;  and styles&amp;#039;s elements, it&amp;#039;s subelement will be parallel processed.&lt;br /&gt;
&lt;br /&gt;
When running, that will dead lock.&lt;br /&gt;
&lt;br /&gt;
= Analysis =&lt;br /&gt;
We can understand OOo had three type mutex.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039; Global Mutex&amp;#039;&amp;#039;&amp;#039;: It can be get from &amp;#039;&amp;#039;&amp;#039;osl::Mutex::getGlobalMutex()&amp;#039;&amp;#039;&amp;#039;, and can be used at a simple critical which lock section no other mutex.&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Solar Mutex&amp;#039;&amp;#039;&amp;#039;: It can be get from &amp;#039;&amp;#039;&amp;#039;Application::GetSolarMutex()&amp;#039;&amp;#039;&amp;#039;, and can be used any where. which lock section can had other mutex, and can be spin lock. It&amp;#039;s used at the uno implement class&amp;#039;s method section, main function is synchronization UNO environment.&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;General Mutex&amp;#039;&amp;#039;&amp;#039;: It can be used other thread and OOo main thread, etc. Which can be as same type.&lt;br /&gt;
&lt;br /&gt;
So, Dead lock will be, It like this:&lt;br /&gt;
&lt;br /&gt;
[[Image:Parallel dead lock.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;#039;============================================================&amp;#039;&lt;br /&gt;
&lt;br /&gt;
= Solve A plan =&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;The First:&amp;#039;&amp;#039;&amp;#039; So we must let the &amp;#039;Solar Mutex&amp;#039; will not acquire at parallel section, It is ease. &lt;br /&gt;
&lt;br /&gt;
But there will synchronization problem; where the memory, and other error will be there.&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;The Second:&amp;#039;&amp;#039;&amp;#039; We must let the &amp;#039;Solar Mutex&amp;#039; synchronization at parallel section, so there are an other mutex object.&lt;br /&gt;
&lt;br /&gt;
So we can design &amp;#039;Solar Mutex&amp;#039; has two mutex objects, One synchronize at general section and One synchronize at parallel section. How &amp;#039;Solar Mutex&amp;#039; can know it is general or parallel section; we can register the parallel thread to &amp;#039;Solar Mutex&amp;#039;. Now It like this:&lt;br /&gt;
&lt;br /&gt;
[[Image:Parallel dead lock solve 1.JPG]]&lt;br /&gt;
&lt;br /&gt;
Ok, that seem is right, Yes it not wrong. But performance no improve. I think it is that the synchronize section is much block. So the processing is multithread, But all most time only one thread can runing, and other thread is block.&lt;br /&gt;
&lt;br /&gt;
So I design the new mutex model, and will test it right or no.&lt;br /&gt;
= Solve B plan =&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;The First:&amp;#039;&amp;#039;&amp;#039; &lt;br /&gt;
OOo use class &amp;#039;Guard&amp;#039; to lock section. Can we register the first &amp;#039;Guard&amp;#039; on mutex object, in the sub section a new &amp;#039;Guard&amp;#039; can know this mutex had locked. So it will n&amp;#039;t call the mutex acquire. When &amp;#039;Guard&amp;#039; destory it will know it is the register &amp;#039;Guard&amp;#039; or no, It will release the mutex as true.&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;The Second:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
We will define five type mutex.&lt;br /&gt;
&lt;br /&gt;
(1) &amp;#039;&amp;#039;&amp;#039;Simple Mutex:&amp;#039;&amp;#039;&amp;#039; like the abover description.&lt;br /&gt;
&lt;br /&gt;
(2) &amp;#039;&amp;#039;&amp;#039;Parallel Mutex:&amp;#039;&amp;#039;&amp;#039; It&amp;#039;s only used at the parallel section, it will be invalid.&lt;br /&gt;
&lt;br /&gt;
(3) &amp;#039;&amp;#039;&amp;#039;Global Mutex:&amp;#039;&amp;#039;&amp;#039; like OOo now, but when it used at the parallel section, it will used &amp;#039;Parallel Mutex&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
(4) &amp;#039;&amp;#039;&amp;#039;Solar Mutex:&amp;#039;&amp;#039;&amp;#039; like OOo now, but when it used at the parallel section, it will be invalid.&lt;br /&gt;
&lt;br /&gt;
(5) &amp;#039;&amp;#039;&amp;#039;General Mutex:&amp;#039;&amp;#039;&amp;#039; like OOo now, but when it used at the parallel section, it will used &amp;#039;Parallel Mutex&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
So &amp;#039;Parallel Mutex&amp;#039; will be used to synchronization the resource like &amp;#039;memory&amp;#039; and &amp;#039;ref count&amp;#039; and &amp;#039;svarry&amp;#039; etc. at the parallel section .&lt;br /&gt;
&lt;br /&gt;
&amp;#039;============================================================&amp;#039;&lt;br /&gt;
&lt;br /&gt;
[[Category:Performance]]&lt;/div&gt;</summary>
		<author><name>Zengliangjun</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=Performance/load_performance_implement_parallel_mutex&amp;diff=164334</id>
		<title>Performance/load performance implement parallel mutex</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=Performance/load_performance_implement_parallel_mutex&amp;diff=164334"/>
		<updated>2010-04-16T09:20:21Z</updated>

		<summary type="html">&lt;p&gt;Zengliangjun: /* Solve B plan */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Performance}}&lt;br /&gt;
Please view [[Performance/load_performance_implement]] about implement. This document explain parallel and dead lock problem and resolve plan.&lt;br /&gt;
&lt;br /&gt;
= Problem =&lt;br /&gt;
Now I&amp;#039;d finished the part of odf impress&amp;#039;s code, and wish is: &lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;settings.xml&amp;#039;&amp;#039;&amp;#039; when processing the &amp;lt;office:settings&amp;gt; element, it&amp;#039;s subelement will be parallel processed.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;styles.xml&amp;#039;&amp;#039;&amp;#039; when processing the &amp;lt;office:styles&amp;gt; and &amp;lt;office:automatic-styles&amp;gt; and &amp;lt;office:master-styles&amp;gt; elements, it&amp;#039;s subelement will be parallel processed.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;content.xml&amp;#039;&amp;#039;&amp;#039; when processing the &amp;lt;office:presentation&amp;gt;  and styles&amp;#039;s elements, it&amp;#039;s subelement will be parallel processed.&lt;br /&gt;
&lt;br /&gt;
When running, that will dead lock.&lt;br /&gt;
&lt;br /&gt;
= Analysis =&lt;br /&gt;
We can understand OOo had three type mutex.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039; Global Mutex&amp;#039;&amp;#039;&amp;#039;: It can be get from &amp;#039;&amp;#039;&amp;#039;osl::Mutex::getGlobalMutex()&amp;#039;&amp;#039;&amp;#039;, and can be used at a simple critical which lock section no other mutex.&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Solar Mutex&amp;#039;&amp;#039;&amp;#039;: It can be get from &amp;#039;&amp;#039;&amp;#039;Application::GetSolarMutex()&amp;#039;&amp;#039;&amp;#039;, and can be used any where. which lock section can had other mutex, and can be spin lock. It&amp;#039;s used at the uno implement class&amp;#039;s method section, main function is synchronization UNO environment.&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;General Mutex&amp;#039;&amp;#039;&amp;#039;: It can be used other thread and OOo main thread, etc. Which can be as same type.&lt;br /&gt;
&lt;br /&gt;
So, Dead lock will be, It like this:&lt;br /&gt;
&lt;br /&gt;
[[Image:Parallel dead lock.jpg]]&lt;br /&gt;
= Solve A plan =&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;The First:&amp;#039;&amp;#039;&amp;#039; So we must let the &amp;#039;Solar Mutex&amp;#039; will not acquire at parallel section, It is ease. &lt;br /&gt;
&lt;br /&gt;
But there will synchronization problem; where the memory, and other error will be there.&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;The Second:&amp;#039;&amp;#039;&amp;#039; We must let the &amp;#039;Solar Mutex&amp;#039; synchronization at parallel section, so there are an other mutex object.&lt;br /&gt;
&lt;br /&gt;
So we can design &amp;#039;Solar Mutex&amp;#039; has two mutex objects, One synchronize at general section and One synchronize at parallel section. How &amp;#039;Solar Mutex&amp;#039; can know it is general or parallel section; we can register the parallel thread to &amp;#039;Solar Mutex&amp;#039;. Now It like this:&lt;br /&gt;
&lt;br /&gt;
[[Image:Parallel dead lock solve 1.JPG]]&lt;br /&gt;
&lt;br /&gt;
Ok, that seem is right, Yes it not wrong. But performance no improve. I think it is that the synchronize section is much block. So the processing is multithread, But all most time only one thread can runing, and other thread is block.&lt;br /&gt;
&lt;br /&gt;
So I design the new mutex model, and will test it right or no.&lt;br /&gt;
= Solve B plan =&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;The First:&amp;#039;&amp;#039;&amp;#039; &lt;br /&gt;
OOo use class &amp;#039;Guard&amp;#039; to lock section. Can we register the first &amp;#039;Guard&amp;#039; on mutex object, in the sub section a new &amp;#039;Guard&amp;#039; can know this mutex had locked. So it will n&amp;#039;t call the mutex acquire. When &amp;#039;Guard&amp;#039; destory it will know it is the register &amp;#039;Guard&amp;#039; or no, It will release the mutex as true.&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;The Second:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
We will define five type mutex.&lt;br /&gt;
&lt;br /&gt;
(1) &amp;#039;&amp;#039;&amp;#039;Simple Mutex:&amp;#039;&amp;#039;&amp;#039; like the abover description.&lt;br /&gt;
&lt;br /&gt;
(2) &amp;#039;&amp;#039;&amp;#039;Parallel Mutex:&amp;#039;&amp;#039;&amp;#039; It&amp;#039;s only used at the parallel section, it will be invalid.&lt;br /&gt;
&lt;br /&gt;
(3) &amp;#039;&amp;#039;&amp;#039;Global Mutex:&amp;#039;&amp;#039;&amp;#039; like OOo now, but when it used at the parallel section, it will used &amp;#039;Parallel Mutex&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
(4) &amp;#039;&amp;#039;&amp;#039;Solar Mutex:&amp;#039;&amp;#039;&amp;#039; like OOo now, but when it used at the parallel section, it will be invalid.&lt;br /&gt;
&lt;br /&gt;
(5) &amp;#039;&amp;#039;&amp;#039;General Mutex:&amp;#039;&amp;#039;&amp;#039; like OOo now, but when it used at the parallel section, it will used &amp;#039;Parallel Mutex&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
So &amp;#039;Parallel Mutex&amp;#039; will be used to synchronization the resource like &amp;#039;memory&amp;#039; and &amp;#039;ref count&amp;#039; and &amp;#039;svarry&amp;#039; etc. at the parallel section .&lt;br /&gt;
&lt;br /&gt;
[[Category:Performance]]&lt;/div&gt;</summary>
		<author><name>Zengliangjun</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=Performance/load_performance_implement_parallel_mutex&amp;diff=164333</id>
		<title>Performance/load performance implement parallel mutex</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=Performance/load_performance_implement_parallel_mutex&amp;diff=164333"/>
		<updated>2010-04-16T09:17:33Z</updated>

		<summary type="html">&lt;p&gt;Zengliangjun: /* Solve B plan */  (checkpoint save)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Performance}}&lt;br /&gt;
Please view [[Performance/load_performance_implement]] about implement. This document explain parallel and dead lock problem and resolve plan.&lt;br /&gt;
&lt;br /&gt;
= Problem =&lt;br /&gt;
Now I&amp;#039;d finished the part of odf impress&amp;#039;s code, and wish is: &lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;settings.xml&amp;#039;&amp;#039;&amp;#039; when processing the &amp;lt;office:settings&amp;gt; element, it&amp;#039;s subelement will be parallel processed.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;styles.xml&amp;#039;&amp;#039;&amp;#039; when processing the &amp;lt;office:styles&amp;gt; and &amp;lt;office:automatic-styles&amp;gt; and &amp;lt;office:master-styles&amp;gt; elements, it&amp;#039;s subelement will be parallel processed.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;content.xml&amp;#039;&amp;#039;&amp;#039; when processing the &amp;lt;office:presentation&amp;gt;  and styles&amp;#039;s elements, it&amp;#039;s subelement will be parallel processed.&lt;br /&gt;
&lt;br /&gt;
When running, that will dead lock.&lt;br /&gt;
&lt;br /&gt;
= Analysis =&lt;br /&gt;
We can understand OOo had three type mutex.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039; Global Mutex&amp;#039;&amp;#039;&amp;#039;: It can be get from &amp;#039;&amp;#039;&amp;#039;osl::Mutex::getGlobalMutex()&amp;#039;&amp;#039;&amp;#039;, and can be used at a simple critical which lock section no other mutex.&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Solar Mutex&amp;#039;&amp;#039;&amp;#039;: It can be get from &amp;#039;&amp;#039;&amp;#039;Application::GetSolarMutex()&amp;#039;&amp;#039;&amp;#039;, and can be used any where. which lock section can had other mutex, and can be spin lock. It&amp;#039;s used at the uno implement class&amp;#039;s method section, main function is synchronization UNO environment.&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;General Mutex&amp;#039;&amp;#039;&amp;#039;: It can be used other thread and OOo main thread, etc. Which can be as same type.&lt;br /&gt;
&lt;br /&gt;
So, Dead lock will be, It like this:&lt;br /&gt;
&lt;br /&gt;
[[Image:Parallel dead lock.jpg]]&lt;br /&gt;
= Solve A plan =&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;The First:&amp;#039;&amp;#039;&amp;#039; So we must let the &amp;#039;Solar Mutex&amp;#039; will not acquire at parallel section, It is ease. &lt;br /&gt;
&lt;br /&gt;
But there will synchronization problem; where the memory, and other error will be there.&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;The Second:&amp;#039;&amp;#039;&amp;#039; We must let the &amp;#039;Solar Mutex&amp;#039; synchronization at parallel section, so there are an other mutex object.&lt;br /&gt;
&lt;br /&gt;
So we can design &amp;#039;Solar Mutex&amp;#039; has two mutex objects, One synchronize at general section and One synchronize at parallel section. How &amp;#039;Solar Mutex&amp;#039; can know it is general or parallel section; we can register the parallel thread to &amp;#039;Solar Mutex&amp;#039;. Now It like this:&lt;br /&gt;
&lt;br /&gt;
[[Image:Parallel dead lock solve 1.JPG]]&lt;br /&gt;
&lt;br /&gt;
Ok, that seem is right, Yes it not wrong. But performance no improve. I think it is that the synchronize section is much block. So the processing is multithread, But all most time only one thread can runing, and other thread is block.&lt;br /&gt;
&lt;br /&gt;
So I design the new mutex model, and will test it right or no.&lt;br /&gt;
= Solve B plan =&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;The First:&amp;#039;&amp;#039;&amp;#039; &lt;br /&gt;
OOo use class &amp;#039;Guard&amp;#039; to lock section. Can we register the first &amp;#039;Guard&amp;#039; on mutex object, in the sub section a new &amp;#039;Guard&amp;#039; can know this mutex had locked. So it will n&amp;#039;t call the mutex acquire. When &amp;#039;Guard&amp;#039; destory it will know it is the register &amp;#039;Guard&amp;#039; or no, It will release the mutex as true.&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;The Second:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
We will define five type mutex.&lt;br /&gt;
&lt;br /&gt;
(1) &amp;#039;&amp;#039;&amp;#039;Simple Mutex:&amp;#039;&amp;#039;&amp;#039; like the abover description.&lt;br /&gt;
&lt;br /&gt;
(2) &amp;#039;&amp;#039;&amp;#039;Parallel Mutex:&amp;#039;&amp;#039;&amp;#039; It&amp;#039;s only used at the parallel section, it will be invalid.&lt;br /&gt;
&lt;br /&gt;
(3) &amp;#039;&amp;#039;&amp;#039;Global Mutex:&amp;#039;&amp;#039;&amp;#039; like OOo now, but when it used at the parallel section, it will used &amp;#039;Parallel Mutex&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
(4) &amp;#039;&amp;#039;&amp;#039;Solar Mutex:&amp;#039;&amp;#039;&amp;#039; like OOo now, but when it used at the parallel section, it will be invalid.&lt;br /&gt;
&lt;br /&gt;
(5) &amp;#039;&amp;#039;&amp;#039;General Mutex:&amp;#039;&amp;#039;&amp;#039; like OOo now, but when it used at the parallel section, it will used &amp;#039;Parallel Mutex&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
So &amp;#039;Parallel Mutex&amp;#039; will be used to synchronization the resource like &amp;#039;memory&amp;#039; and &amp;#039;ref count&amp;#039; and &amp;#039;svarry&amp;#039; etc. at the parallel section .&lt;/div&gt;</summary>
		<author><name>Zengliangjun</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=Performance/load_performance_implement_parallel_mutex&amp;diff=164332</id>
		<title>Performance/load performance implement parallel mutex</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=Performance/load_performance_implement_parallel_mutex&amp;diff=164332"/>
		<updated>2010-04-16T09:15:06Z</updated>

		<summary type="html">&lt;p&gt;Zengliangjun: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Performance}}&lt;br /&gt;
Please view [[Performance/load_performance_implement]] about implement. This document explain parallel and dead lock problem and resolve plan.&lt;br /&gt;
&lt;br /&gt;
= Problem =&lt;br /&gt;
Now I&amp;#039;d finished the part of odf impress&amp;#039;s code, and wish is: &lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;settings.xml&amp;#039;&amp;#039;&amp;#039; when processing the &amp;lt;office:settings&amp;gt; element, it&amp;#039;s subelement will be parallel processed.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;styles.xml&amp;#039;&amp;#039;&amp;#039; when processing the &amp;lt;office:styles&amp;gt; and &amp;lt;office:automatic-styles&amp;gt; and &amp;lt;office:master-styles&amp;gt; elements, it&amp;#039;s subelement will be parallel processed.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;content.xml&amp;#039;&amp;#039;&amp;#039; when processing the &amp;lt;office:presentation&amp;gt;  and styles&amp;#039;s elements, it&amp;#039;s subelement will be parallel processed.&lt;br /&gt;
&lt;br /&gt;
When running, that will dead lock.&lt;br /&gt;
&lt;br /&gt;
= Analysis =&lt;br /&gt;
We can understand OOo had three type mutex.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039; Global Mutex&amp;#039;&amp;#039;&amp;#039;: It can be get from &amp;#039;&amp;#039;&amp;#039;osl::Mutex::getGlobalMutex()&amp;#039;&amp;#039;&amp;#039;, and can be used at a simple critical which lock section no other mutex.&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Solar Mutex&amp;#039;&amp;#039;&amp;#039;: It can be get from &amp;#039;&amp;#039;&amp;#039;Application::GetSolarMutex()&amp;#039;&amp;#039;&amp;#039;, and can be used any where. which lock section can had other mutex, and can be spin lock. It&amp;#039;s used at the uno implement class&amp;#039;s method section, main function is synchronization UNO environment.&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;General Mutex&amp;#039;&amp;#039;&amp;#039;: It can be used other thread and OOo main thread, etc. Which can be as same type.&lt;br /&gt;
&lt;br /&gt;
So, Dead lock will be, It like this:&lt;br /&gt;
&lt;br /&gt;
[[Image:Parallel dead lock.jpg]]&lt;br /&gt;
= Solve A plan =&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;The First:&amp;#039;&amp;#039;&amp;#039; So we must let the &amp;#039;Solar Mutex&amp;#039; will not acquire at parallel section, It is ease. &lt;br /&gt;
&lt;br /&gt;
But there will synchronization problem; where the memory, and other error will be there.&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;The Second:&amp;#039;&amp;#039;&amp;#039; We must let the &amp;#039;Solar Mutex&amp;#039; synchronization at parallel section, so there are an other mutex object.&lt;br /&gt;
&lt;br /&gt;
So we can design &amp;#039;Solar Mutex&amp;#039; has two mutex objects, One synchronize at general section and One synchronize at parallel section. How &amp;#039;Solar Mutex&amp;#039; can know it is general or parallel section; we can register the parallel thread to &amp;#039;Solar Mutex&amp;#039;. Now It like this:&lt;br /&gt;
&lt;br /&gt;
[[Image:Parallel dead lock solve 1.JPG]]&lt;br /&gt;
&lt;br /&gt;
Ok, that seem is right, Yes it not wrong. But performance no improve. I think it is that the synchronize section is much block. So the processing is multithread, But all most time only one thread can runing, and other thread is block.&lt;br /&gt;
&lt;br /&gt;
So I design the new mutex model, and will test it right or no.&lt;br /&gt;
= Solve B plan =&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;The First:&amp;#039;&amp;#039;&amp;#039; &lt;br /&gt;
OOo use class &amp;#039;Guard&amp;#039; to lock section. Can we register the first &amp;#039;Guard&amp;#039; on mutex object, in the sub section a new &amp;#039;Guard&amp;#039; can know this mutex had locked. So it will n&amp;#039;t call the mutex acquire. When &amp;#039;Guard&amp;#039; destory it will know it is the register &amp;#039;Guard&amp;#039; or no, It will release the mutex as true.&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;The Second:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
We will define five type mutex.&lt;br /&gt;
&lt;br /&gt;
(1) &amp;#039;&amp;#039;&amp;#039;Simple Mutex:&amp;#039;&amp;#039;&amp;#039; like the abover description.&lt;br /&gt;
&lt;br /&gt;
(2) &amp;#039;&amp;#039;&amp;#039;Parallel Mutex:&amp;#039;&amp;#039;&amp;#039; It&amp;#039;s only used at the parallel section, it will be invalid.&lt;br /&gt;
&lt;br /&gt;
(3) &amp;#039;&amp;#039;&amp;#039;Global Mutex:&amp;#039;&amp;#039;&amp;#039; like OOo now, but when it used at the parallel section, it will used &amp;#039;Parallel Mutex&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
(4) &amp;#039;&amp;#039;&amp;#039;Solar Mutex:&amp;#039;&amp;#039;&amp;#039; like OOo now, but when it used at the parallel section, it will be invalid.&lt;br /&gt;
&lt;br /&gt;
(5) &amp;#039;&amp;#039;&amp;#039;General Mutex:&amp;#039;&amp;#039;&amp;#039; like OOo now, but when it used at the parallel section, it will used &amp;#039;Parallel Mutex&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
So we will used &amp;#039;Parallel Mutex&amp;#039; it will be used to synchronization the resource like &amp;#039;memory&amp;#039; and &amp;#039;ref count&amp;#039; and &amp;#039;svarry&amp;#039; etc.&lt;/div&gt;</summary>
		<author><name>Zengliangjun</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=Performance/load_performance_implement_parallel_mutex&amp;diff=164329</id>
		<title>Performance/load performance implement parallel mutex</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=Performance/load_performance_implement_parallel_mutex&amp;diff=164329"/>
		<updated>2010-04-16T08:08:41Z</updated>

		<summary type="html">&lt;p&gt;Zengliangjun: (checkpoint save)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Performance}}&lt;br /&gt;
Please view [[Performance/load_performance_implement]] about implement. This document explain parallel and dead lock problem and resolve plan.&lt;br /&gt;
&lt;br /&gt;
= Problem =&lt;br /&gt;
Now I&amp;#039;d finished the part of odf impress&amp;#039;s code, and wish is: &lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;settings.xml&amp;#039;&amp;#039;&amp;#039; when processing the &amp;lt;office:settings&amp;gt; element, it&amp;#039;s subelement will be parallel processed.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;styles.xml&amp;#039;&amp;#039;&amp;#039; when processing the &amp;lt;office:styles&amp;gt; and &amp;lt;office:automatic-styles&amp;gt; and &amp;lt;office:master-styles&amp;gt; elements, it&amp;#039;s subelement will be parallel processed.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;content.xml&amp;#039;&amp;#039;&amp;#039; when processing the &amp;lt;office:presentation&amp;gt;  and styles&amp;#039;s elements, it&amp;#039;s subelement will be parallel processed.&lt;br /&gt;
&lt;br /&gt;
When running, that will dead lock.&lt;br /&gt;
&lt;br /&gt;
= Analysis =&lt;br /&gt;
We can understand OOo had three type mutex.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039; Global Mutex&amp;#039;&amp;#039;&amp;#039;: It can be get from &amp;#039;&amp;#039;&amp;#039;osl::Mutex::getGlobalMutex()&amp;#039;&amp;#039;&amp;#039;, and can be used at a simple critical which lock section no other mutex.&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Solar Mutex&amp;#039;&amp;#039;&amp;#039;: It can be get from &amp;#039;&amp;#039;&amp;#039;Application::GetSolarMutex()&amp;#039;&amp;#039;&amp;#039;, and can be used any where. which lock section can had other mutex, and can be spin lock. It&amp;#039;s used at the uno implement class&amp;#039;s method section, main function is synchronization UNO environment.&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;General Mutex&amp;#039;&amp;#039;&amp;#039;: It can be used other thread and OOo main thread, etc. Which can be as same type.&lt;br /&gt;
&lt;br /&gt;
So, Dead lock will be, It like this:&lt;br /&gt;
&lt;br /&gt;
[[Image:Parallel dead lock.jpg]]&lt;br /&gt;
= Solve A plan =&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;The First:&amp;#039;&amp;#039;&amp;#039; So we must let the &amp;#039;Solar Mutex&amp;#039; will not acquire at parallel section, It is ease. &lt;br /&gt;
&lt;br /&gt;
But there will synchronization problem; where the memory, and other error will be there.&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;The Second:&amp;#039;&amp;#039;&amp;#039; We must let the &amp;#039;Solar Mutex&amp;#039; synchronization at parallel section, so there are an other mutex object.&lt;br /&gt;
&lt;br /&gt;
So we can design &amp;#039;Solar Mutex&amp;#039; has two mutex objects, One synchronize at general section and One synchronize at parallel section. How &amp;#039;Solar Mutex&amp;#039; can know it is general or parallel section; we can register the parallel thread to &amp;#039;Solar Mutex&amp;#039;. Now It like this:&lt;br /&gt;
&lt;br /&gt;
[[Image:Parallel dead lock solve 1.JPG]]&lt;br /&gt;
&lt;br /&gt;
Ok, that seem is right, Yes it not wrong. But performance no improve. I think it is that the synchronize section is much block. So the processing is multithread, But all most time only one thread can runing, and other thread is block.&lt;br /&gt;
&lt;br /&gt;
So I design the new mutex model, and will test it right or no.&lt;br /&gt;
= Solve B plan =&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;The First:&amp;#039;&amp;#039;&amp;#039; &lt;br /&gt;
OOo use class &amp;#039;Guard&amp;#039; to lock section. Can we register the first &amp;#039;Guard&amp;#039; on mutex object, in the sub section a new &amp;#039;Guard&amp;#039; can know this mutex had locked. So it will n&amp;#039;t call the mutex acquire. When &amp;#039;Guard&amp;#039; destory it will know it is the register &amp;#039;Guard&amp;#039; or no, It will release the mutex as true.&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;The Second:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
We will define five type mutex.&lt;br /&gt;
 **(1) the simple mutex like the abover descri&lt;/div&gt;</summary>
		<author><name>Zengliangjun</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=Performance/load_performance_implement_parallel_mutex&amp;diff=164328</id>
		<title>Performance/load performance implement parallel mutex</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=Performance/load_performance_implement_parallel_mutex&amp;diff=164328"/>
		<updated>2010-04-16T08:02:45Z</updated>

		<summary type="html">&lt;p&gt;Zengliangjun: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Performance}}&lt;br /&gt;
Please view [[Performance/load_performance_implement]] about implement. This document explain parallel and dead lock problem and resolve plan.&lt;br /&gt;
&lt;br /&gt;
= Problem =&lt;br /&gt;
Now I&amp;#039;d finished the part of odf impress&amp;#039;s code, and wish is: &lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;settings.xml&amp;#039;&amp;#039;&amp;#039; when processing the &amp;lt;office:settings&amp;gt; element, it&amp;#039;s subelement will be parallel processed.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;styles.xml&amp;#039;&amp;#039;&amp;#039; when processing the &amp;lt;office:styles&amp;gt; and &amp;lt;office:automatic-styles&amp;gt; and &amp;lt;office:master-styles&amp;gt; elements, it&amp;#039;s subelement will be parallel processed.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;content.xml&amp;#039;&amp;#039;&amp;#039; when processing the &amp;lt;office:presentation&amp;gt;  and styles&amp;#039;s elements, it&amp;#039;s subelement will be parallel processed.&lt;br /&gt;
&lt;br /&gt;
When running, that will dead lock.&lt;br /&gt;
&lt;br /&gt;
= Analysis =&lt;br /&gt;
We can understand OOo had three type mutex.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039; Global Mutex&amp;#039;&amp;#039;&amp;#039;: It can be get from &amp;#039;&amp;#039;&amp;#039;osl::Mutex::getGlobalMutex()&amp;#039;&amp;#039;&amp;#039;, and can be used at a simple critical which lock section no other mutex.&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Solar Mutex&amp;#039;&amp;#039;&amp;#039;: It can be get from &amp;#039;&amp;#039;&amp;#039;Application::GetSolarMutex()&amp;#039;&amp;#039;&amp;#039;, and can be used any where. which lock section can had other mutex, and can be spin lock. It&amp;#039;s used at the uno implement class&amp;#039;s method section, main function is synchronization UNO environment.&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;General Mutex&amp;#039;&amp;#039;&amp;#039;: It can be used other thread and OOo main thread, etc. Which can be as same type.&lt;br /&gt;
&lt;br /&gt;
So, Dead lock will be, It like this:&lt;br /&gt;
&lt;br /&gt;
[[Image:Parallel dead lock.jpg]]&lt;br /&gt;
= Solve A plan =&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;The First:&amp;#039;&amp;#039;&amp;#039; So we must let the &amp;#039;Solar Mutex&amp;#039; will not acquire at parallel section, It is ease. &lt;br /&gt;
&lt;br /&gt;
But there will synchronization problem; where the memory, and other error will be there.&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;The Second:&amp;#039;&amp;#039;&amp;#039; We must let the &amp;#039;Solar Mutex&amp;#039; synchronization at parallel section, so there are an other mutex object.&lt;br /&gt;
&lt;br /&gt;
So we can design &amp;#039;Solar Mutex&amp;#039; has two mutex objects, One synchronize at general section and One synchronize at parallel section. How &amp;#039;Solar Mutex&amp;#039; can know it is general or parallel section; we can register the parallel thread to &amp;#039;Solar Mutex&amp;#039;. Now It like this:&lt;br /&gt;
&lt;br /&gt;
[[Image:Parallel dead lock solve 1.JPG]]&lt;br /&gt;
&lt;br /&gt;
Ok, that seem is right, Yes it not wrong. But performance no improve. I think it is that the synchronize section is much block. So the processing is multithread, But all most time only one thread can runing, and other thread is block.&lt;br /&gt;
&lt;br /&gt;
So I design the new mutex model, and will test it right or no.&lt;br /&gt;
= Solve B plan =&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;The First:&amp;#039;&amp;#039;&amp;#039; &lt;br /&gt;
OOo use class &amp;#039;Guard&amp;#039; to lock section. Can we register the first &amp;#039;Guard&amp;#039; on mutex object, in the sub section a new &amp;#039;Guard&amp;#039; can know this mutex had locked. So it will n&amp;#039;t call the mutex acquire. When &amp;#039;Guard&amp;#039; destory it will know it is the register &amp;#039;Guard&amp;#039; or no, It will release the mutex as true.&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;The Second:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
We will define five type mutex.&lt;br /&gt;
**(1) the simple mutex like the abover descri&lt;/div&gt;</summary>
		<author><name>Zengliangjun</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=Performance/load_performance_implement_parallel_mutex&amp;diff=164327</id>
		<title>Performance/load performance implement parallel mutex</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=Performance/load_performance_implement_parallel_mutex&amp;diff=164327"/>
		<updated>2010-04-16T07:15:20Z</updated>

		<summary type="html">&lt;p&gt;Zengliangjun: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Performance}}&lt;br /&gt;
Please view [[Performance/load_performance_implement]] about implement. This document explain parallel and dead lock problem and resolve plan.&lt;br /&gt;
&lt;br /&gt;
= Problem =&lt;br /&gt;
Now I&amp;#039;d finished the part of odf impress&amp;#039;s code, and wish is: &lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;settings.xml&amp;#039;&amp;#039;&amp;#039; when processing the &amp;lt;office:settings&amp;gt; element, it&amp;#039;s subelement will be parallel processed.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;styles.xml&amp;#039;&amp;#039;&amp;#039; when processing the &amp;lt;office:styles&amp;gt; and &amp;lt;office:automatic-styles&amp;gt; and &amp;lt;office:master-styles&amp;gt; elements, it&amp;#039;s subelement will be parallel processed.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;content.xml&amp;#039;&amp;#039;&amp;#039; when processing the &amp;lt;office:presentation&amp;gt;  and styles&amp;#039;s elements, it&amp;#039;s subelement will be parallel processed.&lt;br /&gt;
&lt;br /&gt;
When running, that will dead lock.&lt;br /&gt;
&lt;br /&gt;
= Analysis =&lt;br /&gt;
We can understand OOo had three type mutex.&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;(1)Global Mutex&amp;#039;&amp;#039;&amp;#039;: It can be get from &amp;#039;&amp;#039;&amp;#039;osl::Mutex::getGlobalMutex()&amp;#039;&amp;#039;&amp;#039;, and can be used at a simple critical which lock section no other mutex.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;(2)Solar Mutex&amp;#039;&amp;#039;&amp;#039;: It can be get from &amp;#039;&amp;#039;&amp;#039;Application::GetSolarMutex()&amp;#039;&amp;#039;&amp;#039;, and can be used any where. which lock section can had other mutex, and can be spin lock. It&amp;#039;s used at the uno implement class&amp;#039;s method section, main function is synchronization UNO environment.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;(3)General Mutex&amp;#039;&amp;#039;&amp;#039;: It can be used other thread and OOo main thread, etc. Which can be as same type.&lt;br /&gt;
&lt;br /&gt;
So, Dead lock will be, It like this:&lt;br /&gt;
&lt;br /&gt;
[[Image:Parallel dead lock.jpg]]&lt;br /&gt;
= Solve A plan =&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;The First:&amp;#039;&amp;#039;&amp;#039; So we must let the &amp;#039;Solar Mutex&amp;#039; will not acquire at parallel section, It is ease. &lt;br /&gt;
&lt;br /&gt;
But there will synchronization problem; where the memory, and other error will be there.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;The Second:&amp;#039;&amp;#039;&amp;#039; So we must let the &amp;#039;Solar Mutex&amp;#039; synchronization at parallel section, so there are an other mutex object.&lt;br /&gt;
&lt;br /&gt;
So we can design &amp;#039;Solar Mutex&amp;#039; has two mutex objects, One synchronize at general section and One synchronize at parallel section. How &amp;#039;Solar Mutex&amp;#039; can know it is general or parallel section; we can register the parallel thread to &amp;#039;Solar Mutex&amp;#039;. Now It like this:&lt;br /&gt;
&lt;br /&gt;
[[Image:Parallel dead lock solve 1.JPG]]&lt;br /&gt;
&lt;br /&gt;
Ok, that seem is right, Yes it not wrong. But performance no improve. I think it is that the synchronize section is much block. So the processing is multithread, But all most time only one thread can runing, and other thread is block.&lt;br /&gt;
&lt;br /&gt;
So I design the new mutex model, and will test it right or no.&lt;br /&gt;
= Solve B plan =&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;The First:&amp;#039;&amp;#039;&amp;#039;&lt;/div&gt;</summary>
		<author><name>Zengliangjun</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=File:Parallel_dead_lock_solve_1.JPG&amp;diff=164326</id>
		<title>File:Parallel dead lock solve 1.JPG</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=File:Parallel_dead_lock_solve_1.JPG&amp;diff=164326"/>
		<updated>2010-04-16T07:00:57Z</updated>

		<summary type="html">&lt;p&gt;Zengliangjun: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Zengliangjun</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=File:Parallel_dead_lock.jpg&amp;diff=164325</id>
		<title>File:Parallel dead lock.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=File:Parallel_dead_lock.jpg&amp;diff=164325"/>
		<updated>2010-04-16T06:32:39Z</updated>

		<summary type="html">&lt;p&gt;Zengliangjun: uploaded a new version of &amp;quot;File:Parallel dead lock.jpg&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Zengliangjun</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=File:Parallel_dead_lock.jpg&amp;diff=164324</id>
		<title>File:Parallel dead lock.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=File:Parallel_dead_lock.jpg&amp;diff=164324"/>
		<updated>2010-04-16T06:29:31Z</updated>

		<summary type="html">&lt;p&gt;Zengliangjun: uploaded a new version of &amp;quot;File:Parallel dead lock.jpg&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Zengliangjun</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=Performance/load_performance_implement_parallel_mutex&amp;diff=164323</id>
		<title>Performance/load performance implement parallel mutex</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=Performance/load_performance_implement_parallel_mutex&amp;diff=164323"/>
		<updated>2010-04-16T06:20:08Z</updated>

		<summary type="html">&lt;p&gt;Zengliangjun: Created page with &amp;#039;{{Performance}} Please view Performance/load_performance_implement about implement. This document explain parallel and dead lock problem and resolve plan.  = Problem = Now I&amp;#039;…&amp;#039;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Performance}}&lt;br /&gt;
Please view [[Performance/load_performance_implement]] about implement. This document explain parallel and dead lock problem and resolve plan.&lt;br /&gt;
&lt;br /&gt;
= Problem =&lt;br /&gt;
Now I&amp;#039;d finished the part of odf impress&amp;#039;s code, and wish is: &lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;settings.xml&amp;#039;&amp;#039;&amp;#039; when processing the &amp;lt;office:settings&amp;gt; element, it&amp;#039;s subelement will be parallel processed.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;styles.xml&amp;#039;&amp;#039;&amp;#039; when processing the &amp;lt;office:styles&amp;gt; and &amp;lt;office:automatic-styles&amp;gt; and &amp;lt;office:master-styles&amp;gt; elements, it&amp;#039;s subelement will be parallel processed.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;content.xml&amp;#039;&amp;#039;&amp;#039; when processing the &amp;lt;office:presentation&amp;gt;  and styles&amp;#039;s elements, it&amp;#039;s subelement will be parallel processed.&lt;br /&gt;
&lt;br /&gt;
When running, that will dead lock.&lt;br /&gt;
&lt;br /&gt;
= Analysis =&lt;br /&gt;
We can understand OOo had three type mutex.&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;(1)Global Mutex&amp;#039;&amp;#039;&amp;#039;: It can be get from &amp;#039;&amp;#039;&amp;#039;osl::Mutex::getGlobalMutex()&amp;#039;&amp;#039;&amp;#039;, and can be used at a simple critical which lock section no other mutex.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;(2)Solar Mutex&amp;#039;&amp;#039;&amp;#039;: It can be get from &amp;#039;&amp;#039;&amp;#039;Application::GetSolarMutex()&amp;#039;&amp;#039;&amp;#039;, and can be used any where. which lock section can had other mutex, and can be spin lock. It&amp;#039;s used at the uno implement class&amp;#039;s method section, main function is synchronization UNO environment.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;(3)General Mutex&amp;#039;&amp;#039;&amp;#039;: It can be used other thread and OOo main thread, etc. Which can be as same type.&lt;br /&gt;
&lt;br /&gt;
So, Dead lock will be, It like this:&lt;br /&gt;
&lt;br /&gt;
[[Image:Parallel dead lock.jpg]]&lt;/div&gt;</summary>
		<author><name>Zengliangjun</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=File:Parallel_dead_lock.jpg&amp;diff=164322</id>
		<title>File:Parallel dead lock.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=File:Parallel_dead_lock.jpg&amp;diff=164322"/>
		<updated>2010-04-16T06:18:31Z</updated>

		<summary type="html">&lt;p&gt;Zengliangjun: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Zengliangjun</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=DomainDeveloper&amp;diff=161960</id>
		<title>DomainDeveloper</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=DomainDeveloper&amp;diff=161960"/>
		<updated>2010-04-01T06:40:02Z</updated>

		<summary type="html">&lt;p&gt;Zengliangjun: /* Developers */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;A mapping of names to OOo accounts.&lt;br /&gt;
&lt;br /&gt;
Abbrev.:&lt;br /&gt;
&lt;br /&gt;
* PL : Project Lead&lt;br /&gt;
* CL : Project Co-Lead&lt;br /&gt;
* CC : Community Council Member&lt;br /&gt;
* ESC : Engineering Steering Committee Member &lt;br /&gt;
* CVS : has write access to the OOo CVS repository&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Developers ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable sortable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name || CVS || @openoffice.org || [[IRC Communication]] || Notes || Affiliation&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Agerskov|Claus Agerskov]]||   || cs||Agerskov, cagerskov||PL Project Management Tool ([http://oopm.openoffice.org oopm])||AgerCon&lt;br /&gt;
|-&lt;br /&gt;
| Volker Ahrendt|| X || va||||||Sun Microsystems&lt;br /&gt;
|-&lt;br /&gt;
| Kai Ahrens|| X || ka || Kai_Ahrens ||PL Graphic Applications||Sun Microsystems&lt;br /&gt;
|-&lt;br /&gt;
| Rail Aliev || X  || rail || rail ||  Ru and Tr NL Co-lead || Infra-Resource &lt;br /&gt;
|-&lt;br /&gt;
| Gene Anaya||   || ganaya||||||&lt;br /&gt;
|-&lt;br /&gt;
| [[User:JoostAndrae|Joost Andrae]]|| X || ja||ja_||CL qa, release testing en-US builds and releasing/uploading builds and releases||Sun Microsystems&lt;br /&gt;
|-&lt;br /&gt;
| [[User:ericb|Eric Bachard]] || X || ericb||ericb2|| PL Education, Mac OSX/Linux PPC port and vcl/impress hacker || [http://education.openoffice.org Education project], unaffiliated&lt;br /&gt;
|-&lt;br /&gt;
| Kai Backman||  || kaib ||KaiB||||&lt;br /&gt;
|-&lt;br /&gt;
| Sascha Ballach|| X || sab||||||&lt;br /&gt;
|-&lt;br /&gt;
| Jayant Balraj Madavi||   || jayant_madavi||aZEN_JM||Connectivity / Database||Novell, Inc.&lt;br /&gt;
|-&lt;br /&gt;
| Jörg Barfurth|| X || jb||JoergB||Configuration Util||Sun Microsystems&lt;br /&gt;
|-&lt;br /&gt;
| Omer Bar-or|| X || cremlae||cremlae||Mac porting||Google Summer of Code&lt;br /&gt;
|-&lt;br /&gt;
| Mathias Bauer|| X || mba||||PL Writer, CL Framework, XML||Sun Microsystems&lt;br /&gt;
|-&lt;br /&gt;
| Thorsten Behrens|| X || thb||thorsten||vcl/impress/toolkit visionary||Novell, Inc.&lt;br /&gt;
|-&lt;br /&gt;
| Thomas Benisch|| X || tbe||||Scripting framework||Sun Microsystems&lt;br /&gt;
|-&lt;br /&gt;
| Stephan Bergmann|| X || sb||||CL UDK||Sun Microsystems&lt;br /&gt;
|-&lt;br /&gt;
| Andreas Bille|| X || abi||||||&lt;br /&gt;
|-&lt;br /&gt;
| Éric Bischoff|| X || ebischoff||ebischoff||KDE A/B driver||Bureau Cornavin&lt;br /&gt;
|-&lt;br /&gt;
| Nick Blievers|| X || nick||||IRIX||&lt;br /&gt;
|-&lt;br /&gt;
| Daniel Boelzle|| X || dbo||||UNO core/bridges/packages||Sun Microsystems&lt;br /&gt;
|-&lt;br /&gt;
| Oliver Bolte|| X || obo||||RE||Sun Microsystems&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Cedricbosdo|Cédric Bosdonnat]]|| X || cedricbosdo || cbosdonnat || Writer Filters, ooeclipse integration || Novell, Inc.&lt;br /&gt;
|-&lt;br /&gt;
| Rafaella Braconi||   || coni||Rafaella ||PL l10n, Globalization Program Manager||Sun Microsystems&lt;br /&gt;
|-&lt;br /&gt;
| Michael Brauer|| X || mib||||PL XML||Sun Microsystems&lt;br /&gt;
|-&lt;br /&gt;
| Oliver Braun|| X || obr||obr||System Integration/Accessibility Hacker||Sun Microsystems&lt;br /&gt;
|-&lt;br /&gt;
| Andreas Bregas|| X || ab||||StarBasic||Sun Microsystems&lt;br /&gt;
|-&lt;br /&gt;
| Jörg Brunsmann||   || jbrunsmann||||UDK||&lt;br /&gt;
|-&lt;br /&gt;
| Jörg Budischewski||   || jbu||PyUNO hacker||||&lt;br /&gt;
|-&lt;br /&gt;
| Peter Burow|| X  || pb||plumbumm||UI||Sun Microsystems&lt;br /&gt;
|-&lt;br /&gt;
| Aidan Butler||   || aidan||||XML filters||&lt;br /&gt;
|-&lt;br /&gt;
| [[User:ScottCarr|Scott Carr]] || X  || kcarr||kcarr||PL Documentation||Progbits&lt;br /&gt;
|-&lt;br /&gt;
| Giuseppe Castagno || X || beppec56 || beppec56_  or beppe_c || PDF output||&lt;br /&gt;
|-&lt;br /&gt;
| Colin Charles||   || drbyte||bytee||Malaysian native-lang project||bytebot.net&lt;br /&gt;
|-&lt;br /&gt;
|Jian Hong Cheng || X || chengjh ||  || Writer || IBM Corp.&lt;br /&gt;
|-&lt;br /&gt;
| Xiuzhi Cheng|| X || xzcheng || xiuzhi|| ESC,Xml,ODF|| OOo community&lt;br /&gt;
|-&lt;br /&gt;
| [[User:jza|Alexandro Colorado]]|| X || jza || jza|| CL [[OOoES|ES]] || &lt;br /&gt;
|-&lt;br /&gt;
| Behrend Cornelius|| X || bc||||Wizards||Sun Microsystems&lt;br /&gt;
|-&lt;br /&gt;
| [[User:ccornell|Clayton Cornell]] || X || ccornell || ccornell || Documentation Project co-lead ||Sun Microsystems&lt;br /&gt;
|-&lt;br /&gt;
| Michael Cziebalski||   || mci||||||&lt;br /&gt;
|-&lt;br /&gt;
| [[User:pdefilippis|Pierre de Filippis]]|| X || pdefilippis||aliscafo||Mac OSX native porting||&lt;br /&gt;
|-&lt;br /&gt;
| Yuri Dario ||   || ydario || Paperino || OS/2 Port || Serenity Systems intl&lt;br /&gt;
|-&lt;br /&gt;
| Andrew Dent|| X ||ace_dent||ace_dent||ui/custom_images||&lt;br /&gt;
|-&lt;br /&gt;
| Naren Devaiah||   || ||ndev||Performance||Intel Corporation&lt;br /&gt;
|-&lt;br /&gt;
| Nitin Dongre||   || ||nitin_BITS||||Novell, Inc.(intern)&lt;br /&gt;
|-&lt;br /&gt;
| Radek Doulik||   || radekdoulik||rodo_||Canvas hacker||Novell, Inc.&lt;br /&gt;
|-&lt;br /&gt;
| Carsten Driesner|| X || cd|| cd_oo ||PL Framework||Sun Microsystems&lt;br /&gt;
|-&lt;br /&gt;
| Herbert Duerr|| X || hdu||hdu_hh||GSL||Sun Microsystems&lt;br /&gt;
|-&lt;br /&gt;
| [[User:bei|Bernd Eilers]]|| X || bei||rfc821||[[EIS]]||Sun Microsystems&lt;br /&gt;
|-&lt;br /&gt;
| René Engelhard|| X || rene||_rene_||config_office, Debian packager||Debian&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Pereriksson|Per Eriksson]] || || pereriksson || || CL, MarCon Sweden ||&lt;br /&gt;
|-&lt;br /&gt;
|[[User:Jbfaure|Jean-Baptiste Faure]]||X||jbfaure||jbfaure ||PL FR native-lang project|| &lt;br /&gt;
|-&lt;br /&gt;
| Hubert Figuière|| X || hub || hub || PPTX || Novell, Inc.&lt;br /&gt;
|-&lt;br /&gt;
| Claudio F Filho||   || filhocf||filhocf||Brazilian portuguese Localization||BrOffice.org&lt;br /&gt;
|-&lt;br /&gt;
| Andre Fischer|| X || af||||Impress||Sun Microsystems&lt;br /&gt;
|-&lt;br /&gt;
| Uwe Fischer || X || ufi || ufiooo || Application Help || Sun Microsystems&lt;br /&gt;
|-&lt;br /&gt;
| Ken Foskey||   || waratah||waratah||config_office/dmake man||slug.org.au&lt;br /&gt;
|-&lt;br /&gt;
| Duncan Foster||   || dfoster||||||&lt;br /&gt;
|-&lt;br /&gt;
| David Fraser||   || davidfraser||davidfraser||South African translations, multilingual builds||translate.org.za&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Nf|Nils Fuhrmann]]||   || nf||SunNF||||Sun Microsystems&lt;br /&gt;
|-&lt;br /&gt;
| Martin Gallwey|| X || mtg||marty_||XML/Writer/packaging||&lt;br /&gt;
|-&lt;br /&gt;
| Pierre-Andre Galmes || || pagalmes || pagalmes || Chart2 ||StarXpert&lt;br /&gt;
|-&lt;br /&gt;
| Tony Galmiche|| X || tonygalmiche||||FR native-lang project||&lt;br /&gt;
|-&lt;br /&gt;
| Sunil Gandhi||   || ||tyro||||NOSIP&lt;br /&gt;
|-&lt;br /&gt;
|Zemin Gao ||  || gaozemin|| gaozm || Calc || [[Beijing Redflag Chinese 2000 Software Co., Ltd.|Beijing Redflag CH2000]]&lt;br /&gt;
|-&lt;br /&gt;
| Sophie Gautier|| X || sgauti|| sophi || ||.&lt;br /&gt;
|-&lt;br /&gt;
| Vladimir Glazounov|| X || vg||||RE||Sun Microsystems&lt;br /&gt;
|-&lt;br /&gt;
| Laurent Godard || X || laurentgodard || lgodard || CC, PL Extensions, Fr Native-lang Project || inDesko/Nuxeo &lt;br /&gt;
|-&lt;br /&gt;
| Jody Goldberg|| X || jodygoldberg||jody||[[Calc]] spreadsheet-ness||&lt;br /&gt;
|-&lt;br /&gt;
| Dirk Grobler|| X || dg|||| ||Sun Microsystems&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Sg|Steffen Grund]]|| X || sg|| || NetBeans Integration ||Sun Microsystems&lt;br /&gt;
|-&lt;br /&gt;
| Bettina Haberer||   || bh||||RFEOwner||Sun Microsystems&lt;br /&gt;
|-&lt;br /&gt;
| Bo Han || X || hanbo || hanbo || VBA Interop || [[Beijing Redflag Chinese 2000 Software Co., Ltd.|Beijing Redflag CH2000]]&lt;br /&gt;
|-&lt;br /&gt;
| Ingrid Halama|| X || iha||||Chart||Sun Microsystems&lt;br /&gt;
|-&lt;br /&gt;
| Chris Halls|| X || haggai||haggai||Debian packager&amp;amp;amp;misc. hacker||Credativ Ltd., Debian&lt;br /&gt;
|-&lt;br /&gt;
| Gregor Hartmann|| X || gh|| Lachs ||Testtool, gsicheck, buildbot||Sun Microsystems&lt;br /&gt;
|-&lt;br /&gt;
| Bustamam Harun||   || bustamam||||Malaysian stuff||&lt;br /&gt;
|-&lt;br /&gt;
| Kevin Hendricks|| X || khendricks||||PL Lingucomponent, PowerPC||&lt;br /&gt;
|-&lt;br /&gt;
| Con Hennessy||   || cphennessy||cph2 or cph_||hacker &amp;amp;amp; former council person||OpenApp&lt;br /&gt;
|-&lt;br /&gt;
| Ivo Hinkelmann|| X || ihi||ivo||l10n tooling/general/RE||Sun Microsystems&lt;br /&gt;
|-&lt;br /&gt;
| Eric Hoch|| X || maveric||mav_eric||Mac Porting||&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Lutz_Hoeger|Lutz Hoeger]]|| X || lh ||lutzh||||Sun Microsystems&lt;br /&gt;
|-&lt;br /&gt;
| Michael Hönnig|| X || mi||||PL API||&lt;br /&gt;
|-&lt;br /&gt;
| Ilko Höpping|| X || ih||||||Sun Microsystems&lt;br /&gt;
|-&lt;br /&gt;
| Jan Holešovský|| X || kendy||kendy||KDE integration||Novell, Inc.&lt;br /&gt;
|-&lt;br /&gt;
| Martin Hollmichel|| X || mh||Ratte/Nesshof||PL External, Tools, Porting, CC||Sun Microsystems&lt;br /&gt;
|-&lt;br /&gt;
| Karl Hong|| X || khong||||i18n, CJK expert||&lt;br /&gt;
|-&lt;br /&gt;
| [[User:icobgr|Hristo Hristov]] ||   || icobgr || icobgr || PL Bulgarian native-lang project ||&lt;br /&gt;
|-&lt;br /&gt;
| Matthias Huetsch|| X || mhu||||Performance/strategy, PL UCB, CC, ESC||Sun Microsystems&lt;br /&gt;
|-&lt;br /&gt;
| Sven Jacobi|| X || sj||||Escherwizard||Sun Microsystems&lt;br /&gt;
|-&lt;br /&gt;
| Jörg Jahnke||   || jj||||tooling||Sun Microsystems&lt;br /&gt;
|-&lt;br /&gt;
| Pavel Janík|| X || pjanik||paveljanik||PL Czech native-lang project, CL l10n, CC, ESC, l10n builds||&lt;br /&gt;
|-&lt;br /&gt;
| Sunil Amitkumar Janki || || sjanki || sjanki || GNU Linux mipsel porter || &lt;br /&gt;
|-&lt;br /&gt;
| Christian Jansen||   || cj ||||Menu and Toolbar?||Sun Microsystems&lt;br /&gt;
|-&lt;br /&gt;
| Ocke Janssen|| X || oj||Base||||Sun Microsystems&lt;br /&gt;
|-&lt;br /&gt;
| Berry Jia|| X || berryjia||||||&lt;br /&gt;
|-&lt;br /&gt;
| Mingfei Jia || X  || jiamingfei ||   || Lotus Smart Suite filter,MS Word encryption || IBM Corp.&lt;br /&gt;
|-&lt;br /&gt;
| Chuang Jiang ||   || jiangc ||   || || [[Beijing Redflag Chinese 2000 Software Co., Ltd.|Beijing Redflag CH2000]]&lt;br /&gt;
|-&lt;br /&gt;
| Pascal Junck||   || pjunck||||||&lt;br /&gt;
|-&lt;br /&gt;
| [[User:pj@openoffice.org|Peter Junge]]|| X || pj|| peter13j|| OOo community contact || &lt;br /&gt;
|-&lt;br /&gt;
| Christian Junker||   || Cyb||christianju||API||Trees For Life&lt;br /&gt;
|-&lt;br /&gt;
| Etsushi Kato || X || ekato ||   || Mac OS X Port || Independent &lt;br /&gt;
|-&lt;br /&gt;
| Hirano Kazunari||   || khirano||||Japanese||&lt;br /&gt;
|-&lt;br /&gt;
| Mihaela Kedikova|| X || misheto||||grid control||Sun Microsystems&lt;br /&gt;
|-&lt;br /&gt;
| Dhananjay Keskar|| X || dkeskar ||dkeskar||Performance,Buildbot,cat-herder||Intel Corporation&lt;br /&gt;
|-&lt;br /&gt;
| Volodymyr Khrystynych||   || volody||||XML Filter||&lt;br /&gt;
|-&lt;br /&gt;
| Robert Kinsella||   || rkinsella||||||Sun Microsystems&lt;br /&gt;
|-&lt;br /&gt;
| Matthias Klose||   || doko||doko||Ubuntu, gcc, python packager||Canonical, Inc.&lt;br /&gt;
|-&lt;br /&gt;
| Laszlo Kovacs||   || lkovacs||||Documentation||&lt;br /&gt;
|-&lt;br /&gt;
| Tobias Krause|| X || tkr||||ucb||Sun Microsystems&lt;br /&gt;
|-&lt;br /&gt;
| Martin Kretzschmar|| X || mkretzschmar||martink||Gnome / Debian||Student&lt;br /&gt;
|-&lt;br /&gt;
| Will Lachance||   || wlach||wlach_||Word Perfect File Filters||Net Integration Technologies, Inc.&lt;br /&gt;
|-&lt;br /&gt;
| Marcus Lange|| X || mla||mla||[http://download.openoffice.org download websites], uploading/releasing developer snapshots and releases||Sun Microsystems&lt;br /&gt;
|-&lt;br /&gt;
| Thomas Lange|| X || tl||tl13||||Sun Microsystems&lt;br /&gt;
|-&lt;br /&gt;
| Lars Langhans|| X || lla||||||Sun Microsystems&lt;br /&gt;
|-&lt;br /&gt;
| Hans-Joachim Lankenau|| X || hjs||ause||dmake makefile expert, RE||Sun Microsystems&lt;br /&gt;
|-&lt;br /&gt;
| Németh László|| X || nemeth||||PL lingucomponent||&lt;br /&gt;
|-&lt;br /&gt;
| Jakob Lechner|| X || jakob_lechner||||Writer||Fabalabs&lt;br /&gt;
|-&lt;br /&gt;
| Michael Leibowitz||  X || mikeleib ||mikeleib||performance||Intel Corporation&lt;br /&gt;
|-&lt;br /&gt;
| Hui Li||   || lihuiibm || Hui_Li ||VBA Interop||IBM Corp.&lt;br /&gt;
|-&lt;br /&gt;
|Jian Li||   || lijian || lijian|| Writer|| CS2C&lt;br /&gt;
|-&lt;br /&gt;
| Wind Li|| X || windly||||Address books||&lt;br /&gt;
|-&lt;br /&gt;
| Xing Li || X  || lixxing ||   || Accessibility || IBM Corp.&lt;br /&gt;
|-&lt;br /&gt;
|Weike Liang ||   || liangweike || liangweike || Graphics || [[Beijing Redflag Chinese 2000 Software Co., Ltd.|Beijing Redflag CH2000]]&lt;br /&gt;
|-&lt;br /&gt;
| Ping Liao||   || pliao||||||&lt;br /&gt;
|-&lt;br /&gt;
| Tor Lillqvist|| X || tml||tml_||||Novell, Inc.&lt;br /&gt;
|-&lt;br /&gt;
| Fong Lin || X  || pflin || Fong  || VBA Interop, Scripting, CJK Enhancement || Novell, Inc.&lt;br /&gt;
|-&lt;br /&gt;
| Joachim Lingner|| X || jl||||Java, CLI||Sun Microsystems&lt;br /&gt;
|-&lt;br /&gt;
| Christian Lippka|| X || cl || cl ||Graphic Applications||Sun Microsystems&lt;br /&gt;
|-&lt;br /&gt;
| Chen Liu||   || liuchenn|| liuchen ||VBA Interop||IBM Corp.&lt;br /&gt;
|-&lt;br /&gt;
|Jianli Liu ||  || liujl|| liujianli || Graphics|| [[Beijing Redflag Chinese 2000 Software Co., Ltd.|Beijing Redflag CH2000]]&lt;br /&gt;
|-&lt;br /&gt;
| Mindy Liu||   || mindyliu||||||&lt;br /&gt;
|-&lt;br /&gt;
|[[User:liutao |Tao Liu]]   || X  || liutao || liutao  ||PL modularization ,PyUNO, Async dialogs,|| &lt;br /&gt;
|-&lt;br /&gt;
| YiSong Liu||  || Liu YiSong || Liu YiSong|| PYUNO || [[Beijing Redflag Chinese 2000 Software Co., Ltd.|Beijing Redflag CH2000]]&lt;br /&gt;
|-&lt;br /&gt;
|Yu Liu || X  || ch2000liuy || LiuYU  || Swriter || [[Beijing Redflag Chinese 2000 Software Co., Ltd.|Beijing Redflag CH2000]]&lt;br /&gt;
|-&lt;br /&gt;
|Yuhua Liu ||  || liuyuhua|| yuhua|| ||[[Beijing Redflag Chinese 2000 Software Co., Ltd.|Beijing Redflag CH2000]]&lt;br /&gt;
|-&lt;br /&gt;
| [[User:fl|Frank Loehmann]]|| X || fl ||frankl||PL [http://ux.openoffice.org User Experience]||Sun Microsystems&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Dl|Dieter Loeschky]]|| X || dl ||||PL: ODF Toolkit||Sun Microsystems&lt;br /&gt;
|-&lt;br /&gt;
| Philipp Lohmann|| X || pl||PhilippL||VCL/X11 (GSL) hacker||Sun Microsystems&lt;br /&gt;
|-&lt;br /&gt;
| Michel Loiseleur|| || mloiseleur|| coren`|| Bugfixes ||Linagora&lt;br /&gt;
|-&lt;br /&gt;
| Jackson Low|| X || xxjack12xx||||Porting||&lt;br /&gt;
|-&lt;br /&gt;
| Patrick Luby||   || pluby||||Mac||&lt;br /&gt;
|-&lt;br /&gt;
|Jingrong Luo ||  || Luo Jingrong|| Luo Jingrong|| ||[[Beijing Redflag Chinese 2000 Software Co., Ltd.|Beijing Redflag CH2000]]&lt;br /&gt;
|-&lt;br /&gt;
|Yue Lv ||  || lvyue || lvyue || Calc ||[[Beijing Redflag Chinese 2000 Software Co., Ltd.|Beijing Redflag CH2000]]&lt;br /&gt;
|-&lt;br /&gt;
|[[User:majun|Jun Ma]]||   ||majun51  ||  ||  writer  || [[Beijing Redflag Chinese 2000 Software Co., Ltd.|Beijing Redflag CH2000]]&lt;br /&gt;
|-&lt;br /&gt;
| Prasad Madhav || X || pmadhav || pmadhav || Buildbot || Intern@Intel &lt;br /&gt;
|-&lt;br /&gt;
| Babak Mahbod||   || bmahbod||||||&lt;br /&gt;
|-&lt;br /&gt;
| Martin Maher||   || mmaher||||Writer &amp;amp;amp; Filter chap||&lt;br /&gt;
|-&lt;br /&gt;
| Nakata Maho|| X || maho||_maho_||PL QA, PL JA, FreeBSD guy||Independent&lt;br /&gt;
|-&lt;br /&gt;
|Yonggang Mao || X || maoyonggang|| maoyg|| Calc || CS2C&lt;br /&gt;
|-&lt;br /&gt;
| John Marmion|| X || jmarmion||||||&lt;br /&gt;
|-&lt;br /&gt;
| Andreas Martens|| X || ama||||PL Writer||Sun Microsystems&lt;br /&gt;
|-&lt;br /&gt;
| Shane M Mathews|| X || smmathews|| smmathews ||[[Impress:_OpenGL_rendered_transitions]]||student&lt;br /&gt;
|-&lt;br /&gt;
| Frank Mau|| X || fma||||tooling||Sun Microsystems&lt;br /&gt;
|-&lt;br /&gt;
| [[User:smsm1|Shaun McDonald]] || X || smsm1 || shaunmcdonald || Mac Port, buildbot MacPort1 || Graduate&lt;br /&gt;
|-&lt;br /&gt;
| Caolán McNamara|| X || cmc||caolan||CL Writer &amp;amp;amp; Filter man|| [http://www.redhat.com Red Hat Inc.]&lt;br /&gt;
|-&lt;br /&gt;
| Michael Meeks|| X || mmeeks||michael_||ugly hack-er, ESC||Novell, Inc.&lt;br /&gt;
|-&lt;br /&gt;
| Frank Meies|| X || fme||||Writer||Sun Microsystems&lt;br /&gt;
|-&lt;br /&gt;
| Federico Mena-Quintero||   || federicomena||federico||perfectionist||Novell, Inc.&lt;br /&gt;
|-&lt;br /&gt;
| Ismael Merzaq|| X || isma87||ismael_||Mac OSX native porting||Student&lt;br /&gt;
|-&lt;br /&gt;
| Michael Mi||   || mmi||||||&lt;br /&gt;
|-&lt;br /&gt;
| Björn Michaelsen|| X || b_michaelsen ||b_michaelsen|| Writer, Bookmarks, Performance, User Feedback Program ||Sun Microsystems&lt;br /&gt;
|-&lt;br /&gt;
| Björn Milcke|| X || bm||bm_||Chart||Sun Microsystems&lt;br /&gt;
|-&lt;br /&gt;
| Petr Mladek||   || pmladek||pmladek||SUSE RPMs, ooo-build releases||Novell, Inc.&lt;br /&gt;
|-&lt;br /&gt;
| Cyrille Moureaux|| X || cyrillem||Cyrille||||&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Mmp|Matthias Müller-Prove]]|| X || mmp|| mprove|| [[User Experience]] || Sun Microsystems&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Bluedwarf|Takashi Nakamoto]]|| || bluedwarf|| || Japanese || Student&lt;br /&gt;
|-&lt;br /&gt;
| Jan Navrátil || X || jnavrati || jnavrati || || [http://www.redhat.com Red Hat Inc.]&lt;br /&gt;
|-&lt;br /&gt;
| Niklas Nebel|| X || nn||||PL [[Calc]]||Sun Microsystems&lt;br /&gt;
|-&lt;br /&gt;
| Christoph Neumann|| X || cn||||[[UnoApiTest]]||Sun Microsystems&lt;br /&gt;
|-&lt;br /&gt;
| Frank Neumann|| X || fne||||MacPort||&lt;br /&gt;
|-&lt;br /&gt;
| NicelKM|| X || mnicel||nicel||||Novell, Inc.&lt;br /&gt;
|-&lt;br /&gt;
| Jan Nieuwenhuizen|| X || jcn||janneke||Layout code, hacker ||Novell, Inc.&lt;br /&gt;
|-&lt;br /&gt;
| [[User:ChristophNoack|Christoph Noack]]|| X || christophnoack ||christoph_n||CL [http://ux.openoffice.org User Experience]||&lt;br /&gt;
|-&lt;br /&gt;
| Bertram Nolte||   || bnolte||||||&lt;br /&gt;
|-&lt;br /&gt;
| Tomas O&amp;#039;Connor||   || toconnor||||Scripting Framework||&lt;br /&gt;
|-&lt;br /&gt;
| Maximilian Odendahl|| X  || mod||mod||[[Notes2]] [[SQL_Syntax_Highlighting]]|| Student / SEPT-Solutions&lt;br /&gt;
|-&lt;br /&gt;
| Takashi Ono || X  || tono ||   || MinGW port || Independent&lt;br /&gt;
|-&lt;br /&gt;
| Lars Oppermann|| X || lo||||||&lt;br /&gt;
|-&lt;br /&gt;
| Rakesh Pandit || X || rakeshpandit|| chacha_chaudhry|| Education Project - Starmath/fix module warnings|| Education Project&lt;br /&gt;
|-&lt;br /&gt;
| Rodrigo Parra Novo|| X || rodarvus||rodarvus||Gnumeric/Abiword OpenDocument Format support and port to Maemo||INdT (Instituto Nokia de Tecnologia)&lt;br /&gt;
|-&lt;br /&gt;
| Pierre Pasteau|| X || pastea_p || pierrep|| Education Project, SeaMonkey migration || Education Project&lt;br /&gt;
|-&lt;br /&gt;
| Edward Peterlin|| X || OPENSTEP||||Mac||&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Fpe|Frank Peters]]|| X || fpe||||CL Documentation||Sun Microsystems&lt;br /&gt;
|-&lt;br /&gt;
| Christof Pintaske|| X || cp||||||Sun Microsystems&lt;br /&gt;
|-&lt;br /&gt;
| Ron Piterman||   || rpiterman||||||&lt;br /&gt;
|-&lt;br /&gt;
| Sebastien Plisson|| X  || plipli||plipli||Developer on Aqua port||OO Aqua Port&lt;br /&gt;
|-&lt;br /&gt;
| Noel Power||   || npower||noelp||VBA Interop, Scripting||Novell, Inc.&lt;br /&gt;
|-&lt;br /&gt;
| Nikolai Pretzell|| X || np || ||Autodoc, code quality||Sun Microsystems&lt;br /&gt;
|-&lt;br /&gt;
| Jonathan Pryor|| || jpryor || jonp || || Novell, Inc.&lt;br /&gt;
|-&lt;br /&gt;
| Canghua Qu||  || quch || Canghua || AutoTest, Graphics || [[Beijing Redflag Chinese 2000 Software Co., Ltd.|Beijing Redflag CH2000]]&lt;br /&gt;
|-&lt;br /&gt;
| Volker Quetschke|| X || vq||vq||W32-tcsh/bash build environment and dmake Hacker, ESC||Gravity Waves&lt;br /&gt;
|-&lt;br /&gt;
| Tino Rachui|| X || tra||tinor||GSL/Unix Hacker||Sun Microsystems&lt;br /&gt;
|-&lt;br /&gt;
| Goran Rakić || X ||goranrakic || || Serbian Native-Lang PL || &lt;br /&gt;
|-&lt;br /&gt;
| [[User:Kr|Kay Ramme]]|| X || kr||||PL UDK||Sun Microsystems&lt;br /&gt;
|-&lt;br /&gt;
| [[User:ErAck|Eike Rathke]]|| X || er||erAck||CL [[Calc]], engine; CL i18n; stricken with number formatter||Sun Microsystems&lt;br /&gt;
|-&lt;br /&gt;
| Michael Rauch|| X || mrauch||||NetBSD||&lt;br /&gt;
|-&lt;br /&gt;
| Jens-Heiner Rechtien|| X || hr||blauwal||RE; OOo SCM (CVS, CWS tooling); Porting; Compilers||Sun Microsystems&lt;br /&gt;
|-&lt;br /&gt;
| Daniel Rentz|| X || dr|| drr ||[[Calc]] Excel filter, UI||Sun Microsystems&lt;br /&gt;
|-&lt;br /&gt;
| Florian Reuter|| X || flr||||Writer filters||Novell, Inc.&lt;br /&gt;
|-&lt;br /&gt;
| Georg Richter|| X || grichter||georg||Base, native MySQL driver||MySQL AB&lt;br /&gt;
|-&lt;br /&gt;
| G. Roderick Singleton||   || grsingleton||grsingleton||Documentation||pathtech.org&lt;br /&gt;
|-&lt;br /&gt;
| Hennes Rohling|| X || hro||||GSL &amp;amp;amp; Util||Sun Microsystems&lt;br /&gt;
|-&lt;br /&gt;
| Bibek Sahu||   || Bibek||bibek||Impress pieces||Trees For Life&lt;br /&gt;
|-&lt;br /&gt;
| Andreas Schlüns|| X || as||||Framework||Sun Microsystems&lt;br /&gt;
|-&lt;br /&gt;
| Ingo Schmidt|| X || is||||(Native) Installation||Sun Microsystems&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Jsc|J&amp;amp;uuml;rgen Schmidt]]|| X || jsc||jsc||PL API, PL Extensions, UNO, SDK||Sun Microsystems&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Schmidtm|Matthias Schmidt]] ||   || schmidtm || schmidtm || Mac OSX Aqua Port || Sun Microsystems&lt;br /&gt;
|-&lt;br /&gt;
| Stephan Schäfer|| X || ssa||ssa||VCL||Sun Microsystems&lt;br /&gt;
|-&lt;br /&gt;
| Frank Schönheit|| X || fs||FrankS||Database Access, Forms||Sun Microsystems&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Sus|Svante Schubert]]|| X || sus||Svante||XML &amp;amp; ODFTOOLKIT co-lead, ODFDOM project chair, Member of OASIS ODF TC, OASIS OIC TC, OASIS ODF SC Metadata||Sun Microsystems&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Sts|Stella Schulze]]|| X || sts||||[http://ui.openoffice.org/nonav/VisualDesign/ Visual Design]||Sun Microsystems&lt;br /&gt;
|-&lt;br /&gt;
| Julian Seward || || sewardj || || valgrind ||&lt;br /&gt;
|-&lt;br /&gt;
| Darragh Sherwin||   || dsherwin||darragh||E-Legislation / E-GovSystems||Propylon&lt;br /&gt;
|-&lt;br /&gt;
| Wei Guo Shi || X  || shiwg ||   || Accessibility and Smart Suite filter || IBM Corp.&lt;br /&gt;
|-&lt;br /&gt;
|[[User:Robertzhou | RobertZhou]]||  || robertzhou|| shizhoubo|| [[Framework]] || CS2C&lt;br /&gt;
|-&lt;br /&gt;
| Raul Siddhartha||   || rsiddhartha||raul||GTK File Selector||Novell, Inc.&lt;br /&gt;
|-&lt;br /&gt;
| Sarah Smith||   || ssmith||||||&lt;br /&gt;
|-&lt;br /&gt;
| [[User:mox|Mox Soini]] || X || mox || Moxed || Mac Porting || &lt;br /&gt;
|-&lt;br /&gt;
| Rajesh Sola||   || rajeshsola||sola||misc.||NOSIP&lt;br /&gt;
|-&lt;br /&gt;
| Kai Sommerfeld|| X || kso||||manager &amp;amp;amp; hacker||Sun Microsystems&lt;br /&gt;
|-&lt;br /&gt;
| Oliver Specht|| X || os||||PL UI||Sun Microsystems&lt;br /&gt;
|-&lt;br /&gt;
| Jörg Spindler||   || jspindler||||||&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Rescue|Joey Stanford]] ||  || Rescue/k0fcc || Rinchen || CL [http://eo.openoffice.org/ Esperanto native-lang project] || [http://canonical.com Canonical]&lt;br /&gt;
|-&lt;br /&gt;
| Fridrich Štrba|| X || fridrich_strba||Fridrich||Word Perfect Hacker||Novell, Inc.&lt;br /&gt;
|-&lt;br /&gt;
| Keith Stribley|| X || kstribley||||Graphite fonts, Myanmar l10n||&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Muthusuba|Muthu Subramanian]]|| X || muthusuba||muthusuba||misc.||&lt;br /&gt;
|-&lt;br /&gt;
| Louis Suárez-Potts||   || louis||louis||Community Manager||Collab.net&lt;br /&gt;
|-&lt;br /&gt;
|Quanfa Tang ||  || tqfa|| tangquanfa|| Calc || [[Beijing Redflag Chinese 2000 Software Co., Ltd.|Beijing Redflag CH2000]]&lt;br /&gt;
|-&lt;br /&gt;
| David Tardon || X || dtardon || dtardon || || [http://www.redhat.com Red Hat Inc.]&lt;br /&gt;
|-&lt;br /&gt;
| Stefan Taxhet|| X || st||stx12||CC, interpersonal problem fixer||Sun Microsystems&lt;br /&gt;
|-&lt;br /&gt;
| Armin Theissen||   || armin||||||&lt;br /&gt;
|-&lt;br /&gt;
| Caio Tiago Oliveira|| X || asrail||asrail||CL QA, release testing pt-BR builds||BrOffice.org&lt;br /&gt;
|-&lt;br /&gt;
| Jan Tietjens||   || tietjens||||||&lt;br /&gt;
|-&lt;br /&gt;
| Rüdiger Timm|| X || rt|| rtimm ||RE||Sun Microsystems&lt;br /&gt;
|-&lt;br /&gt;
| [[User:mt|Malte Timmermann]]|| X || mt|| Malte || Accessibility, Security, Performance||Sun Microsystems&lt;br /&gt;
|-&lt;br /&gt;
| Gerhard Tonn||   || tonn||||s390||&lt;br /&gt;
|-&lt;br /&gt;
| Willem van Dorp||   || willem.vandorp||||||&lt;br /&gt;
|-&lt;br /&gt;
| Tom Verbeek|| X || tv|||| ||&lt;br /&gt;
|-&lt;br /&gt;
| Sander Vesik||   || svesik||||||&lt;br /&gt;
|-&lt;br /&gt;
| Daniel Vogelheim|| X || dvo||||XML||&lt;br /&gt;
|-&lt;br /&gt;
| Mikhail Voitenko|| X || mav||mav||Framework||Sun Microsystems&lt;br /&gt;
|-&lt;br /&gt;
| Robert Vojta|| X || rvojta||rvojta||Mac OS X related issue||&lt;br /&gt;
|-&lt;br /&gt;
| Dirk Völzke|| X || dv||||Installation||Sun Microsystems&lt;br /&gt;
|-&lt;br /&gt;
|Xu Ming Wang || X || flyccloud or Wangxum ||  || Calc || IBM Corp.&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Sparcmoz|Jim Watson]]|| X || sparcmoz|| sparcmoz||GNU Linux sparc porter||clug.org.au&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Weiz |Zhao Wei ]] ||   || weiz || weiz || Chart2 || [[Beijing Redflag Chinese 2000 Software Co., Ltd.|Beijing Redflag CH2000]]&lt;br /&gt;
|-&lt;br /&gt;
| Armin Weiss|| X || aw||||||Sun Microsystems&lt;br /&gt;
|-&lt;br /&gt;
| Gerd Weiss|| X || gm||||RE||Sun Microsystems&lt;br /&gt;
|-&lt;br /&gt;
| Dan Williams|| X || fa||dcbw||Mac et. al. hacker|| [http://www.redhat.com Red Hat Inc.]&lt;br /&gt;
|-&lt;br /&gt;
| Oliver Wittmann|| X || od||Writer||||Sun Microsystems&lt;br /&gt;
|-&lt;br /&gt;
|[[User:wuy|Yan Wu]] || X || wuy ||   ||Framework ||CS2C&lt;br /&gt;
|-&lt;br /&gt;
| Stephan Wunderlich|| X || sw||||||&lt;br /&gt;
|- &lt;br /&gt;
| Antonio Xu|| X || antoxu || antoxu || Async dialogs, PRC improvements || Intel Corporation&lt;br /&gt;
|-&lt;br /&gt;
|Dehua Xu ||   || xudehua || xudh  ||||&lt;br /&gt;
|-&lt;br /&gt;
| Steve Yin || X  || steve_yin || steve_yin || Microsoft Office file format, PDF, Accessibility, ODF || IBM Corp.&lt;br /&gt;
|-&lt;br /&gt;
| Kohei Yoshida|| X || kohei||kohei_||[[Calc]] hacker, Calc optimization solver developer||Novell, Inc.&lt;br /&gt;
|-&lt;br /&gt;
| Guoqiang Yu|| X || yugq || yugq|| Performance || [[Beijing Redflag Chinese 2000 Software Co., Ltd.|Beijing Redflag CH2000]]&lt;br /&gt;
|-&lt;br /&gt;
| Xiaoyang Yu||   || || ||Disk block reordering||Intel Corporation &lt;br /&gt;
|-&lt;br /&gt;
| George Zahopoulos|| X || georgez||||||&lt;br /&gt;
|-&lt;br /&gt;
| Kurt Zenker|| X || kz||smoketester||RE||Sun Microsystems&lt;br /&gt;
|-&lt;br /&gt;
|[[User:Zhangxiaofei|Xiaofei Zhang]]||  || Zhangxiaofei || zhangxiaofei/FelixZ || [[Framework]] ||CS2C&lt;br /&gt;
|-&lt;br /&gt;
|Jianwei Zhao ||   || zhaojianwei || zhaojianwei ||  Swriter  || [[Beijing Redflag Chinese 2000 Software Co., Ltd.|Beijing Redflag CH2000]]&lt;br /&gt;
|-&lt;br /&gt;
| Jeremy Zheng|| X || zhiming || Jeremy || Async dialogs, PRC improvements || Intel Corporation&lt;br /&gt;
|-&lt;br /&gt;
| Zengliangjun || X || Zengliangjun ||  liangjun || [[Performance]] ||[[Beijing Redflag Chinese 2000 Software Co., Ltd.|Beijing Redflag CH2000]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== QA Engineers ===&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;2&amp;quot; cellpadding=&amp;quot;4&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;margin: 1em 1em 1em 0; background: #f9f9f9; border: 1px #aaa solid; border-collapse: collapse;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name ||CVS||@openoffice.org || [[IRC Communication]] || Interested modules || Notes || Affiliation&lt;br /&gt;
|-&lt;br /&gt;
| Stefan Baltzer||||sba||||writer||||Sun Microsystems&lt;br /&gt;
|-&lt;br /&gt;
| Thorsten Bosbach||X||tbo||||framework, testautomation||framework test automation||Sun Microsystems&lt;br /&gt;
|-&lt;br /&gt;
| Oliver Craemer||X||oc||||[[Calc]], testautomation||calc test automation||Sun Microsystems&lt;br /&gt;
|-&lt;br /&gt;
| Helge Delfs||X||hde||||testautomation, writer||Test automation||Sun Microsystems&lt;br /&gt;
|-&lt;br /&gt;
| Fredrik Haegg||X||fha||||||||&lt;br /&gt;
|-&lt;br /&gt;
| Hasan Ilter||||hi||||writer, printing, pdf export||||Sun Microsystems&lt;br /&gt;
|-&lt;br /&gt;
| Michael Rüß||||mru||||writer, word im/export||||Sun Microsystems&lt;br /&gt;
|-&lt;br /&gt;
| Éric Savary||||es||||writer, accessibility||||Sun Microsystems&lt;br /&gt;
|-&lt;br /&gt;
| [[User:jsi|Joerg Sievers]]||X||jsi||jogi||porting||Mac- and Solaris SPARC port testing||&lt;br /&gt;
|-&lt;br /&gt;
| Joerg Skottke||X||jsk||skotti||framework, qa/qatesttool||Framework test automation||Sun Microsystems&lt;br /&gt;
|-&lt;br /&gt;
| Marc Neumann||X||msc||||database, testautomation||Database access test automation||Sun Microsystems&lt;br /&gt;
|-&lt;br /&gt;
| Chris Lukasiak||||clu||||database||||Sun Microsystems&lt;br /&gt;
|-&lt;br /&gt;
| Frank Stecher||||fst||||[[Calc]]||||Sun Microsystems&lt;br /&gt;
|-&lt;br /&gt;
| Jack Warchold|||| jw||||writer, import/export filters||||&lt;br /&gt;
|-&lt;br /&gt;
| Uwe Luebbers||||ul||||framework||||Sun Microsystems&lt;br /&gt;
|-&lt;br /&gt;
| Thorsten Martens||||tm||||framework||||Sun Microsystems&lt;br /&gt;
|-&lt;br /&gt;
| Olaf Felka|||| of||of_sun||framework, installation||||Sun Microsystems&lt;br /&gt;
|-&lt;br /&gt;
| Thomas Klarhoefer||||kla||||chart||||Sun Microsystems&lt;br /&gt;
|-&lt;br /&gt;
| Wolfram Garten||X|| wg||||draw, impress||draw, impress test automation||Sun Microsystems&lt;br /&gt;
|-&lt;br /&gt;
| Christian Guenther||||cgu||||draw, impress||||Sun Microsystems&lt;br /&gt;
|-&lt;br /&gt;
| Ulf Stroehler|||| us||||||||Sun Microsystems&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Thorsten_Ziehm|Thorsten Ziehm]]||||| thorstenziehm||||||QA lead||Sun Microsystems&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
We are tracking pending JCAs in the document [[Pending JCAs]].&lt;br /&gt;
&lt;br /&gt;
== Related Pages ==&lt;br /&gt;
* [[Commit Rights]]&lt;br /&gt;
* [[Contributing Patches]]&lt;br /&gt;
* [[User_Experience/Community|User Experience Team]]&lt;br /&gt;
* A map of OOo developers around the world is available at http://www.frappr.com/ooodev, please add yourself to the map if you&amp;#039;re involved in OOo development. It&amp;#039;s just fun to see who&amp;#039;s where :-)&lt;br /&gt;
&lt;br /&gt;
[[Category:Development]]&lt;/div&gt;</summary>
		<author><name>Zengliangjun</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=User:Zengliangjun&amp;diff=161959</id>
		<title>User:Zengliangjun</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=User:Zengliangjun&amp;diff=161959"/>
		<updated>2010-04-01T06:33:23Z</updated>

		<summary type="html">&lt;p&gt;Zengliangjun: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;*Name: Liangjun Zeng&lt;br /&gt;
*IRC: liangjun&lt;br /&gt;
*Email: zengliangjun@redoffice.com&lt;br /&gt;
*Company: [http://www.redflag2000.cn Beijing Redflag Chinese 2000 Software Co.,Ltd]&lt;br /&gt;
*Working as: Performance &lt;br /&gt;
*Location: Beijing, UTC + 8&lt;/div&gt;</summary>
		<author><name>Zengliangjun</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=User:Zengliangjun&amp;diff=161958</id>
		<title>User:Zengliangjun</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=User:Zengliangjun&amp;diff=161958"/>
		<updated>2010-04-01T06:30:36Z</updated>

		<summary type="html">&lt;p&gt;Zengliangjun: Created page with &amp;#039;*Name: Liangjun Zeng *OOo: liangjun *Email: zengliangjun@redoffice.com zengliangjun@openoffice.org *Company: [http://www.redflag2000.cn Beijing Redflag Chinese 2000 Software Co.,…&amp;#039;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;*Name: Liangjun Zeng&lt;br /&gt;
*OOo: liangjun&lt;br /&gt;
*Email: zengliangjun@redoffice.com zengliangjun@openoffice.org&lt;br /&gt;
*Company: [http://www.redflag2000.cn Beijing Redflag Chinese 2000 Software Co.,Ltd]&lt;br /&gt;
*Working as: OOo Performance &lt;br /&gt;
*Location: Beijing, UTC + 8&lt;/div&gt;</summary>
		<author><name>Zengliangjun</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=Performance/Implement_Merger_Dynamic_Library&amp;diff=158186</id>
		<title>Performance/Implement Merger Dynamic Library</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=Performance/Implement_Merger_Dynamic_Library&amp;diff=158186"/>
		<updated>2010-03-02T08:48:20Z</updated>

		<summary type="html">&lt;p&gt;Zengliangjun: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Something about merger dynamic library please view [[Merge_UNO_Dlls]] and [[Performance/Ideas/Easy_UNO_Services_Merging]].&lt;br /&gt;
&lt;br /&gt;
I will disucss the complete process here(exclude UNO runtime libraries).&lt;br /&gt;
&lt;br /&gt;
= Analyze the loading libraries =&lt;br /&gt;
&amp;quot;&amp;#039;&amp;#039;&amp;#039;B&amp;#039;&amp;#039;&amp;#039;&amp;quot; is library&amp;#039;s name.&lt;br /&gt;
&lt;br /&gt;
&amp;quot;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;I&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;quot; is module name.&lt;br /&gt;
&lt;br /&gt;
== OOo base starting load libraries ==&lt;br /&gt;
&lt;br /&gt;
 basegfxmi.dll      &lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;behelper.uno.dll&amp;#039;&amp;#039;&amp;#039;  &amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;configmgr&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
 comphelp4MSC.dll   &lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;configmgr2.uno.dll&amp;#039;&amp;#039;&amp;#039;  &amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;configmgr&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;dnd.dll&amp;#039;&amp;#039;&amp;#039;  &amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;dtrans&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;           &lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;fsstorage.uno.dll&amp;#039;&amp;#039;&amp;#039;  &amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;svtools&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;  &lt;br /&gt;
 fwemi.dll          &lt;br /&gt;
 fwimi.dll          &lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;fwkmi.dll&amp;#039;&amp;#039;&amp;#039;  &amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;framework&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;         &lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;fwlmi.dll&amp;#039;&amp;#039;&amp;#039;  &amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;framework&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;               &lt;br /&gt;
 i18nisolang1MSC.dll&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;i18npool.uno.dll&amp;#039;&amp;#039;&amp;#039;  &amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;i18npool&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;  &lt;br /&gt;
 i18nutilMSC.dll    &lt;br /&gt;
 icudt40.dll        &lt;br /&gt;
 icuin40.dll        &lt;br /&gt;
 icuuc40.dll        &lt;br /&gt;
 jmi_g.dll          &lt;br /&gt;
 lngmi.dll          &lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;localebe1.uno.dll&amp;#039;&amp;#039;&amp;#039;  &amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;shell&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;  &lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;package2.dll&amp;#039;&amp;#039;&amp;#039;  &amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;package&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;sax.uno.dll&amp;#039;&amp;#039;&amp;#039;  &amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;sax&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
 saxmi.dll          &lt;br /&gt;
 sbmi.dll           &lt;br /&gt;
 sfxmi.dll          &lt;br /&gt;
 sofficeapp.dll     &lt;br /&gt;
 sotmi.dll          &lt;br /&gt;
 splmi.dll          &lt;br /&gt;
 svlmi.dll          &lt;br /&gt;
 svtmi.dll          &lt;br /&gt;
 sysmgr1.uno.dll    &lt;br /&gt;
 tkmi.dll           &lt;br /&gt;
 tlmi.dll           &lt;br /&gt;
 ucb1.dll           &lt;br /&gt;
 ucbhelper4MSC.dll  &lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;ucpfile1.dll&amp;#039;&amp;#039;&amp;#039;  &amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;ucb&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
 utlmi.dll          &lt;br /&gt;
 vclmi.dll          &lt;br /&gt;
 vos3MSC.dll        &lt;br /&gt;
 xcrmi.dll          &lt;br /&gt;
 xomi.dll&lt;br /&gt;
== Write/Calc/Impress starting load libraries ==&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;fileacc.dll&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;filterconfig1.dll&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;ftransl.dll&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;guesslangmi.dll&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;ldapbe2.uno.dll&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;mcnttype.dll&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;sysdtrans.dll&amp;#039;&amp;#039;&amp;#039; &lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;ucpexpand1.uno.dll&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;unoxmlmi.dll&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;uuimi.dll&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;xstor.dll&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
== Write/Calc/Impress starting load libraries ==&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;evtatt.dll&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;frmmi.dll&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;hyphenmi.dll&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;lnthmi.dll&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;spellmi.dll&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;xmlsecurity.dll&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
= Rewrite the uno export method =&lt;br /&gt;
I will &amp;#039;&amp;#039;&amp;#039;behelper.uno.dll&amp;#039;&amp;#039;&amp;#039; as example.&lt;br /&gt;
&lt;br /&gt;
== Implement new method ==&lt;br /&gt;
As we know, This library&amp;#039;s UNO method is define in &amp;quot;configmgr/source/backendhelper/componentdf.cxx&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Now we will copy that file to a new file &amp;quot;configmgr/source/backendhelper/componentdf_merger.cxx&amp;quot;.&lt;br /&gt;
And update the uno methods name like this([[Performance/Ideas/Easy_UNO_Services_Merging]]):&lt;br /&gt;
&lt;br /&gt;
 component_getImplementationEnvironment_&amp;#039;&amp;#039;behelper&amp;#039;&amp;#039;&lt;br /&gt;
 component_writeInfo_&amp;#039;&amp;#039;behelper&amp;#039;&amp;#039;&lt;br /&gt;
 component_getFactory_&amp;#039;&amp;#039;behelper&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
== Compile new lib file ==&lt;br /&gt;
Now we can update the &amp;quot;configmgr/source/backendhelper/makefile.mk&amp;quot;, and compile the &amp;quot;behelper_merger.lib&amp;quot; file.&lt;br /&gt;
Add these content into this file.&lt;br /&gt;
 &lt;br /&gt;
 LIB2TARGET=$(SLB)$/&amp;#039;&amp;#039;behelper_merger.lib&amp;#039;&amp;#039;        &lt;br /&gt;
 LIB2OBJFILES=\&lt;br /&gt;
        $(SLO)$/backendlayerhelper.obj \&lt;br /&gt;
        $(SLO)$/&amp;#039;&amp;#039;componentdf_merger.obj&amp;#039;&amp;#039;&lt;br /&gt;
== Deliver merger lib to solver dir ==&lt;br /&gt;
Update the &amp;quot;configmgr/prj/d.lst&amp;quot;, add these content into this file&lt;br /&gt;
&lt;br /&gt;
 mkdir: %_DEST%\slb%_EXT%\base_merger&lt;br /&gt;
 ..\%__SRC%\slb\configmgr.lib %_DEST%\slb%_EXT%\base_merger\behelper_merger.lib&lt;br /&gt;
 ..\%__SRC%\slb\configmgr.lin %_DEST%\slb%_EXT%\base_merger\behelper_merger.lin&lt;br /&gt;
&lt;br /&gt;
Now dealing with a dynamic library of the complete process has been completed.&lt;br /&gt;
&lt;br /&gt;
= Merger liberary uno method implement =&lt;br /&gt;
We will implement these process in &amp;quot;postprocess&amp;quot; module.&lt;br /&gt;
== &amp;quot;merger&amp;quot; folder ==&lt;br /&gt;
Create new &amp;quot;postprocess/merger&amp;quot; folder, and add these content to &amp;quot;postprocess/prj/build.lst&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
 +po postprocess\merger nmake - all po_merger NULL&lt;br /&gt;
 -po postprocess\checkxml nmake - all po_checkxml NULL&lt;br /&gt;
 +po postprocess\checkxml nmake - all po_checkxml po_merger NULL&lt;br /&gt;
== &amp;quot;merger_XXX.cxx&amp;quot; file ==&lt;br /&gt;
Create new &amp;quot;postprocess/merger/merger_base.cxx&amp;quot; file.&lt;br /&gt;
And this file will be:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;cppuhelper/factory.hxx&amp;gt;                                                                     &lt;br /&gt;
                                                                                                        &lt;br /&gt;
#define DECLARE_UNO_API( model ) \                                                                      &lt;br /&gt;
void component_getImplementationEnvironment_##model	\                                                &lt;br /&gt;
(const sal_Char	**, uno_Environment);	\                                                            &lt;br /&gt;
sal_Bool component_writeInfo_##model	\                                                                &lt;br /&gt;
(void *, void *);	\                                                                                    &lt;br /&gt;
void* component_getFactory_##model	\                                                                    &lt;br /&gt;
(const sal_Char*, void *, void *);&lt;br /&gt;
//  &lt;br /&gt;
#define CALL_UNO_API_WRITER_INFO(model ) \                                                              &lt;br /&gt;
	if( !component_writeInfo_##model( pServiceManager, 	pRegistryKey) )	\                                &lt;br /&gt;
	{	return sal_False;		}                                                                        &lt;br /&gt;
//&lt;br /&gt;
#define CALL_UNO_API_GET_FACTORY(model ) \                                                              &lt;br /&gt;
	if( NULL != (pFactory = component_getFactory_##model( pImplName, pServiceManager, pRegistryKey)) )	\&lt;br /&gt;
	{	return pFactory;		}                                                                        &lt;br /&gt;
//&lt;br /&gt;
rtl_StandardModuleCount g_moduleCount = MODULE_COUNT_INIT;                                              &lt;br /&gt;
&lt;br /&gt;
DECLARE_UNO_API( behelper ); &lt;br /&gt;
&lt;br /&gt;
extern &amp;quot;C&amp;quot;                                                                                              &lt;br /&gt;
{                                                                                                       &lt;br /&gt;
void SAL_CALL component_getImplementationEnvironment(                                                   &lt;br /&gt;
	const sal_Char ** ppEnvTypeName, uno_Environment ** )                                                &lt;br /&gt;
{                                                                                                       &lt;br /&gt;
	*ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME;                                                 &lt;br /&gt;
}&lt;br /&gt;
sal_Bool SAL_CALL component_writeInfo( void * pServiceManager, void * pRegistryKey )                    &lt;br /&gt;
{                                                                                                       &lt;br /&gt;
	CALL_UNO_API_WRITER_INFO( behelper );                                                                &lt;br /&gt;
	return sal_True;                                                                                     &lt;br /&gt;
}&lt;br /&gt;
void * SAL_CALL component_getFactory                                                                    &lt;br /&gt;
(const sal_Char * pImplName, void * pServiceManager, void * pRegistryKey)                               &lt;br /&gt;
{                                                                                                       &lt;br /&gt;
	void * pFactory = NULL;                                                                              &lt;br /&gt;
	CALL_UNO_API_GET_FACTORY( behelper );                                                                &lt;br /&gt;
	return pFactory;                                                                                     &lt;br /&gt;
}                                                                                                       &lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
== &amp;quot;makefile.mk&amp;quot; file ==&lt;br /&gt;
Create new &amp;quot;postprocess/merger/makefile.mk&amp;quot; file.&lt;br /&gt;
and this file will be&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;&amp;quot;&amp;gt;&lt;br /&gt;
PRJ=..&lt;br /&gt;
&lt;br /&gt;
PRJNAME=postprocess&lt;br /&gt;
TARGET=merger_base&lt;br /&gt;
&lt;br /&gt;
.INCLUDE : settings.mk&lt;br /&gt;
&lt;br /&gt;
# ------ merger_base.uno ------&lt;br /&gt;
SHL1TARGET=	merger_base.uno&lt;br /&gt;
SHL1OBJS=	\&lt;br /&gt;
	$(SLO)$/merger_base.obj&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
SHL1STDLIBS= \&lt;br /&gt;
        $(CPPUHELPERLIB) \&lt;br /&gt;
        $(CPPULIB) \&lt;br /&gt;
        $(SALLIB)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
SHL1DEPN=&lt;br /&gt;
SHL1IMPLIB=	i$(TARGET)&lt;br /&gt;
&lt;br /&gt;
SHL1LIBS=	\&lt;br /&gt;
	$(SOLARVER)$/$(INPATH)$/slb/base_merger/behelper_merger.lib &lt;br /&gt;
&lt;br /&gt;
SHL1DEF=	$(MISC)$/$(SHL1TARGET).def&lt;br /&gt;
DEF1NAME=	$(SHL1TARGET)&lt;br /&gt;
DEF1EXPORTFILE=	exports.dxp&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
== &amp;quot;exports.dxp&amp;quot; file ==&lt;br /&gt;
Create new &amp;quot;postprocess/merger/exports.dxp&amp;quot; file.&lt;br /&gt;
And this file will be:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;&amp;quot;&amp;gt;&lt;br /&gt;
component_getImplementationEnvironment&lt;br /&gt;
component_writeInfo&lt;br /&gt;
component_getFactory&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
== Deliver ==&lt;br /&gt;
Deliver merger library to solver dir.&lt;br /&gt;
Add this content to file &amp;quot;postprocess/prj/d.lst&amp;quot;:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;&amp;quot;&amp;gt;&lt;br /&gt;
..\%__SRC%\bin\merger_base.uno.dll %_DEST%\bin%_EXT%\merger_base.uno.dll&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now we finished compile merger library process.&lt;br /&gt;
&lt;br /&gt;
= Update the packge script file =&lt;br /&gt;
These process will be &amp;quot;scp2&amp;quot; module, has two types thing:&lt;br /&gt;
One is add merger libraries to package, the other is that do not add mergered libraries to package.&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Clear the mergered libraries &amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
update &amp;quot;scp2/source/ooo/file_library_ooo.scp&amp;quot;:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;&amp;quot;&amp;gt;&lt;br /&gt;
-File gid_File_Lib_Behelper&lt;br /&gt;
-    TXT_FILE_BODY;&lt;br /&gt;
-    Styles = (PACKED,UNO_COMPONENT);&lt;br /&gt;
-    RegistryID = gid_Starregistry_Services_Rdb;&lt;br /&gt;
-    Dir = gid_Dir_Program;&lt;br /&gt;
-  #ifdef UNX&lt;br /&gt;
-    Name = STRING(CONCAT2(behelper.uno,UNXSUFFIX));&lt;br /&gt;
-  #else&lt;br /&gt;
-    Name = &amp;quot;behelper.uno.dll&amp;quot;;&lt;br /&gt;
-  #endif&lt;br /&gt;
-End&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
update &amp;quot;scp2/source/ooo/module_hidden_ooo.scp&amp;quot;:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;&amp;quot;&amp;gt;&lt;br /&gt;
-gid_File_Lib_Behelper,&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Add the merger libraries &amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
update &amp;quot;scp2/source/ooo/file_library_ooo.scp&amp;quot;:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;&amp;quot;&amp;gt;&lt;br /&gt;
+File gid_File_Lib_Merger_base&lt;br /&gt;
+     TXT_FILE_BODY;&lt;br /&gt;
+     Styles = (PACKED,UNO_COMPONENT);&lt;br /&gt;
+     RegistryID = gid_Starregistry_Services_Rdb;&lt;br /&gt;
+     Dir = gid_Dir_Program;&lt;br /&gt;
+   #ifdef UNX&lt;br /&gt;
+    Name = STRING(CONCAT2(merger_base.uno,UNXSUFFIX));&lt;br /&gt;
+   #else&lt;br /&gt;
+    Name = &amp;quot;merger_base.uno.dll&amp;quot;;&lt;br /&gt;
+   #endif&lt;br /&gt;
+ End&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
update &amp;quot;scp2/source/ooo/module_hidden_ooo.scp&amp;quot;:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;&amp;quot;&amp;gt;&lt;br /&gt;
+gid_File_Lib_Merger_base,&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
= Problem =&lt;br /&gt;
When I merger those library, that will report error when load OOo with UNO component. I do&amp;#039;t know why.&lt;br /&gt;
= Discuss =&lt;br /&gt;
Can we merger the other liberaries, when I finished the complete process.&lt;br /&gt;
&lt;br /&gt;
We can divide three steps:&lt;br /&gt;
#Compile merger lib files and deliver the lib files.&lt;br /&gt;
#Merger these libs to one dynamic library.&lt;br /&gt;
#Update the package scripts.&lt;br /&gt;
&lt;br /&gt;
[[Category:Performance]]&lt;/div&gt;</summary>
		<author><name>Zengliangjun</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=Performance/Implement_Merger_Dynamic_Library&amp;diff=158185</id>
		<title>Performance/Implement Merger Dynamic Library</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=Performance/Implement_Merger_Dynamic_Library&amp;diff=158185"/>
		<updated>2010-03-02T08:37:38Z</updated>

		<summary type="html">&lt;p&gt;Zengliangjun: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Something about merger dynamic library please view [[Merge_UNO_Dlls]] and [[Performance/Ideas/Easy_UNO_Services_Merging]].&lt;br /&gt;
&lt;br /&gt;
I will disucss the complete process here(exclude UNO runtime libraries).&lt;br /&gt;
&lt;br /&gt;
= Analyze the loading libraries =&lt;br /&gt;
&amp;quot;&amp;#039;&amp;#039;&amp;#039;B&amp;#039;&amp;#039;&amp;#039;&amp;quot; is library&amp;#039;s name.&lt;br /&gt;
&lt;br /&gt;
&amp;quot;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;I&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;quot; is module name.&lt;br /&gt;
&lt;br /&gt;
== OOo base starting load libraries ==&lt;br /&gt;
&lt;br /&gt;
 basegfxmi.dll      &lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;behelper.uno.dll&amp;#039;&amp;#039;&amp;#039;  &amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;configmgr&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
 comphelp4MSC.dll   &lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;configmgr2.uno.dll&amp;#039;&amp;#039;&amp;#039;  &amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;configmgr&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;dnd.dll&amp;#039;&amp;#039;&amp;#039;  &amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;dtrans&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;           &lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;fsstorage.uno.dll&amp;#039;&amp;#039;&amp;#039;  &amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;svtools&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;  &lt;br /&gt;
 fwemi.dll          &lt;br /&gt;
 fwimi.dll          &lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;fwkmi.dll&amp;#039;&amp;#039;&amp;#039;  &amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;framework&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;         &lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;fwlmi.dll&amp;#039;&amp;#039;&amp;#039;  &amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;framework&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;               &lt;br /&gt;
 i18nisolang1MSC.dll&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;i18npool.uno.dll&amp;#039;&amp;#039;&amp;#039;  &amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;i18npool&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;  &lt;br /&gt;
 i18nutilMSC.dll    &lt;br /&gt;
 icudt40.dll        &lt;br /&gt;
 icuin40.dll        &lt;br /&gt;
 icuuc40.dll        &lt;br /&gt;
 jmi_g.dll          &lt;br /&gt;
 lngmi.dll          &lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;localebe1.uno.dll&amp;#039;&amp;#039;&amp;#039;  &amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;shell&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;  &lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;package2.dll&amp;#039;&amp;#039;&amp;#039;  &amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;package&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;sax.uno.dll&amp;#039;&amp;#039;&amp;#039;  &amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;sax&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
 saxmi.dll          &lt;br /&gt;
 sbmi.dll           &lt;br /&gt;
 sfxmi.dll          &lt;br /&gt;
 sofficeapp.dll     &lt;br /&gt;
 sotmi.dll          &lt;br /&gt;
 splmi.dll          &lt;br /&gt;
 svlmi.dll          &lt;br /&gt;
 svtmi.dll          &lt;br /&gt;
 sysmgr1.uno.dll    &lt;br /&gt;
 tkmi.dll           &lt;br /&gt;
 tlmi.dll           &lt;br /&gt;
 ucb1.dll           &lt;br /&gt;
 ucbhelper4MSC.dll  &lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;ucpfile1.dll&amp;#039;&amp;#039;&amp;#039;  &amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;ucb&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
 utlmi.dll          &lt;br /&gt;
 vclmi.dll          &lt;br /&gt;
 vos3MSC.dll        &lt;br /&gt;
 xcrmi.dll          &lt;br /&gt;
 xomi.dll&lt;br /&gt;
== Write/Calc/Impress starting load libraries ==&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;fileacc.dll&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;filterconfig1.dll&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;ftransl.dll&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;guesslangmi.dll&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;ldapbe2.uno.dll&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;mcnttype.dll&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;sysdtrans.dll&amp;#039;&amp;#039;&amp;#039; &lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;ucpexpand1.uno.dll&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;unoxmlmi.dll&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;uuimi.dll&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;xstor.dll&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
== Write/Calc/Impress starting load libraries ==&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;evtatt.dll&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;frmmi.dll&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;hyphenmi.dll&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;lnthmi.dll&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;spellmi.dll&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;xmlsecurity.dll&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
= Rewrite the uno export method =&lt;br /&gt;
I will &amp;#039;&amp;#039;&amp;#039;behelper.uno.dll&amp;#039;&amp;#039;&amp;#039; as example.&lt;br /&gt;
&lt;br /&gt;
== Implement new method ==&lt;br /&gt;
As we know, This library&amp;#039;s UNO method is define in &amp;quot;configmgr/source/backendhelper/componentdf.cxx&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Now we will copy that file to a new file &amp;quot;configmgr/source/backendhelper/componentdf_merger.cxx&amp;quot;.&lt;br /&gt;
And update the uno methods name like this([[Performance/Ideas/Easy_UNO_Services_Merging]]):&lt;br /&gt;
&lt;br /&gt;
 component_getImplementationEnvironment_&amp;#039;&amp;#039;behelper&amp;#039;&amp;#039;&lt;br /&gt;
 component_writeInfo_&amp;#039;&amp;#039;behelper&amp;#039;&amp;#039;&lt;br /&gt;
 component_getFactory_&amp;#039;&amp;#039;behelper&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
== Compile new lib file ==&lt;br /&gt;
Now we can update the &amp;quot;configmgr/source/backendhelper/makefile.mk&amp;quot;, and compile the &amp;quot;behelper_merger.lib&amp;quot; file.&lt;br /&gt;
Add these content into this file.&lt;br /&gt;
 &lt;br /&gt;
 LIB2TARGET=$(SLB)$/&amp;#039;&amp;#039;behelper_merger.lib&amp;#039;&amp;#039;        &lt;br /&gt;
 LIB2OBJFILES=\&lt;br /&gt;
        $(SLO)$/backendlayerhelper.obj \&lt;br /&gt;
        $(SLO)$/&amp;#039;&amp;#039;componentdf_merger.obj&amp;#039;&amp;#039;&lt;br /&gt;
== Deliver merger lib to solver dir ==&lt;br /&gt;
Update the &amp;quot;configmgr/prj/d.lst&amp;quot;, add these content into this file&lt;br /&gt;
&lt;br /&gt;
 mkdir: %_DEST%\slb%_EXT%\base_merger&lt;br /&gt;
 ..\%__SRC%\slb\configmgr.lib %_DEST%\slb%_EXT%\base_merger\behelper_merger.lib&lt;br /&gt;
 ..\%__SRC%\slb\configmgr.lin %_DEST%\slb%_EXT%\base_merger\behelper_merger.lin&lt;br /&gt;
&lt;br /&gt;
Now dealing with a dynamic library of the complete process has been completed.&lt;br /&gt;
&lt;br /&gt;
= Merger liberary uno method implement =&lt;br /&gt;
We will implement these process in &amp;quot;postprocess&amp;quot; module.&lt;br /&gt;
== &amp;quot;merger&amp;quot; folder ==&lt;br /&gt;
Create new &amp;quot;postprocess/merger&amp;quot; folder, and add these content to &amp;quot;postprocess/prj/build.lst&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
 +po postprocess\merger nmake - all po_merger NULL&lt;br /&gt;
 -po postprocess\checkxml nmake - all po_checkxml NULL&lt;br /&gt;
 +po postprocess\checkxml nmake - all po_checkxml po_merger NULL&lt;br /&gt;
== &amp;quot;merger_XXX.cxx&amp;quot; file ==&lt;br /&gt;
Create new &amp;quot;postprocess/merger/merger_base.cxx&amp;quot; file.&lt;br /&gt;
And this file will be:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;cppuhelper/factory.hxx&amp;gt;                                                                     &lt;br /&gt;
                                                                                                        &lt;br /&gt;
#define DECLARE_UNO_API( model ) \                                                                      &lt;br /&gt;
void component_getImplementationEnvironment_##model	\                                                &lt;br /&gt;
(const sal_Char	**, uno_Environment);	\                                                            &lt;br /&gt;
sal_Bool component_writeInfo_##model	\                                                                &lt;br /&gt;
(void *, void *);	\                                                                                    &lt;br /&gt;
void* component_getFactory_##model	\                                                                    &lt;br /&gt;
(const sal_Char*, void *, void *);&lt;br /&gt;
//  &lt;br /&gt;
#define CALL_UNO_API_WRITER_INFO(model ) \                                                              &lt;br /&gt;
	if( !component_writeInfo_##model( pServiceManager, 	pRegistryKey) )	\                                &lt;br /&gt;
	{	return sal_False;		}                                                                        &lt;br /&gt;
//&lt;br /&gt;
#define CALL_UNO_API_GET_FACTORY(model ) \                                                              &lt;br /&gt;
	if( NULL != (pFactory = component_getFactory_##model( pImplName, pServiceManager, pRegistryKey)) )	\&lt;br /&gt;
	{	return pFactory;		}                                                                        &lt;br /&gt;
//&lt;br /&gt;
rtl_StandardModuleCount g_moduleCount = MODULE_COUNT_INIT;                                              &lt;br /&gt;
&lt;br /&gt;
DECLARE_UNO_API( behelper ); &lt;br /&gt;
&lt;br /&gt;
extern &amp;quot;C&amp;quot;                                                                                              &lt;br /&gt;
{                                                                                                       &lt;br /&gt;
void SAL_CALL component_getImplementationEnvironment(                                                   &lt;br /&gt;
	const sal_Char ** ppEnvTypeName, uno_Environment ** )                                                &lt;br /&gt;
{                                                                                                       &lt;br /&gt;
	*ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME;                                                 &lt;br /&gt;
}&lt;br /&gt;
sal_Bool SAL_CALL component_writeInfo( void * pServiceManager, void * pRegistryKey )                    &lt;br /&gt;
{                                                                                                       &lt;br /&gt;
	CALL_UNO_API_WRITER_INFO( behelper );                                                                &lt;br /&gt;
	return sal_True;                                                                                     &lt;br /&gt;
}&lt;br /&gt;
void * SAL_CALL component_getFactory                                                                    &lt;br /&gt;
(const sal_Char * pImplName, void * pServiceManager, void * pRegistryKey)                               &lt;br /&gt;
{                                                                                                       &lt;br /&gt;
	void * pFactory = NULL;                                                                              &lt;br /&gt;
	CALL_UNO_API_GET_FACTORY( behelper );                                                                &lt;br /&gt;
	return pFactory;                                                                                     &lt;br /&gt;
}                                                                                                       &lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
== &amp;quot;makefile.mk&amp;quot; file ==&lt;br /&gt;
Create new &amp;quot;postprocess/merger/makefile.mk&amp;quot; file.&lt;br /&gt;
and this file will be&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;&amp;quot;&amp;gt;&lt;br /&gt;
PRJ=..&lt;br /&gt;
&lt;br /&gt;
PRJNAME=postprocess&lt;br /&gt;
TARGET=merger_base&lt;br /&gt;
&lt;br /&gt;
.INCLUDE : settings.mk&lt;br /&gt;
&lt;br /&gt;
# ------ merger_base.uno ------&lt;br /&gt;
SHL1TARGET=	merger_base.uno&lt;br /&gt;
SHL1OBJS=	\&lt;br /&gt;
	$(SLO)$/merger_base.obj&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
SHL1STDLIBS= \&lt;br /&gt;
        $(CPPUHELPERLIB) \&lt;br /&gt;
        $(CPPULIB) \&lt;br /&gt;
        $(SALLIB)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
SHL1DEPN=&lt;br /&gt;
SHL1IMPLIB=	i$(TARGET)&lt;br /&gt;
&lt;br /&gt;
SHL1LIBS=	\&lt;br /&gt;
	$(SOLARVER)$/$(INPATH)$/slb/base_merger/behelper_merger.lib &lt;br /&gt;
&lt;br /&gt;
SHL1DEF=	$(MISC)$/$(SHL1TARGET).def&lt;br /&gt;
DEF1NAME=	$(SHL1TARGET)&lt;br /&gt;
DEF1EXPORTFILE=	exports.dxp&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
== &amp;quot;exports.dxp&amp;quot; file ==&lt;br /&gt;
Create new &amp;quot;postprocess/merger/exports.dxp&amp;quot; file.&lt;br /&gt;
And this file will be:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;&amp;quot;&amp;gt;&lt;br /&gt;
component_getImplementationEnvironment&lt;br /&gt;
component_writeInfo&lt;br /&gt;
component_getFactory&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
== Deliver ==&lt;br /&gt;
Deliver merger library to solver dir.&lt;br /&gt;
Add this content to file &amp;quot;postprocess/prj/d.lst&amp;quot;:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;&amp;quot;&amp;gt;&lt;br /&gt;
..\%__SRC%\bin\merger_base.uno.dll %_DEST%\bin%_EXT%\merger_base.uno.dll&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now we finished compile merger library process.&lt;br /&gt;
&lt;br /&gt;
= Update the packge script file =&lt;br /&gt;
These process will be &amp;quot;scp2&amp;quot; module, has two types thing:&lt;br /&gt;
One is add merger libraries to package, the other is that do not add mergered libraries to package.&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Clear the mergered libraries &amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
update &amp;quot;scp2/source/ooo/file_library_ooo.scp&amp;quot;:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;&amp;quot;&amp;gt;&lt;br /&gt;
-File gid_File_Lib_Behelper&lt;br /&gt;
-    TXT_FILE_BODY;&lt;br /&gt;
-    Styles = (PACKED,UNO_COMPONENT);&lt;br /&gt;
-    RegistryID = gid_Starregistry_Services_Rdb;&lt;br /&gt;
-    Dir = gid_Dir_Program;&lt;br /&gt;
-  #ifdef UNX&lt;br /&gt;
-    Name = STRING(CONCAT2(behelper.uno,UNXSUFFIX));&lt;br /&gt;
-  #else&lt;br /&gt;
-    Name = &amp;quot;behelper.uno.dll&amp;quot;;&lt;br /&gt;
-  #endif&lt;br /&gt;
-End&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
update &amp;quot;scp2/source/ooo/module_hidden_ooo.scp&amp;quot;:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;&amp;quot;&amp;gt;&lt;br /&gt;
-gid_File_Lib_Behelper,&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Add the merger libraries &amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
update &amp;quot;scp2/source/ooo/file_library_ooo.scp&amp;quot;:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;&amp;quot;&amp;gt;&lt;br /&gt;
+File gid_File_Lib_Merger_base&lt;br /&gt;
+     TXT_FILE_BODY;&lt;br /&gt;
+     Styles = (PACKED,UNO_COMPONENT);&lt;br /&gt;
+     RegistryID = gid_Starregistry_Services_Rdb;&lt;br /&gt;
+     Dir = gid_Dir_Program;&lt;br /&gt;
+   #ifdef UNX&lt;br /&gt;
+    Name = STRING(CONCAT2(merger_base.uno,UNXSUFFIX));&lt;br /&gt;
+   #else&lt;br /&gt;
+    Name = &amp;quot;merger_base.uno.dll&amp;quot;;&lt;br /&gt;
+   #endif&lt;br /&gt;
+ End&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
update &amp;quot;scp2/source/ooo/module_hidden_ooo.scp&amp;quot;:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;&amp;quot;&amp;gt;&lt;br /&gt;
+gid_File_Lib_Merger_base,&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
= Problem =&lt;br /&gt;
When I merger those library, that will report error when load OOo with UNO component. I do&amp;#039;t know why.&lt;br /&gt;
= Discuss =&lt;br /&gt;
Can we merger the other liberaries, when I finished the complete process.&lt;br /&gt;
&lt;br /&gt;
We can divide three steps:&lt;br /&gt;
#Compile merger lib files and deliver the lib files.&lt;br /&gt;
#Merger these libs to one dynamic library.&lt;br /&gt;
#Update the package scripts.&lt;/div&gt;</summary>
		<author><name>Zengliangjun</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=Performance/Implement_Merger_Dynamic_Library&amp;diff=158184</id>
		<title>Performance/Implement Merger Dynamic Library</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=Performance/Implement_Merger_Dynamic_Library&amp;diff=158184"/>
		<updated>2010-03-02T08:22:29Z</updated>

		<summary type="html">&lt;p&gt;Zengliangjun: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Something about merger dynamic library please view [[Merge_UNO_Dlls]] and [[Performance/Ideas/Easy_UNO_Services_Merging]].&lt;br /&gt;
&lt;br /&gt;
I will disucss the complete process here(exclude UNO runtime libraries).&lt;br /&gt;
&lt;br /&gt;
= Analyze the loading libraries =&lt;br /&gt;
&amp;quot;&amp;#039;&amp;#039;&amp;#039;B&amp;#039;&amp;#039;&amp;#039;&amp;quot; is library&amp;#039;s name.&lt;br /&gt;
&lt;br /&gt;
&amp;quot;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;I&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;quot; is module name.&lt;br /&gt;
&lt;br /&gt;
== OOo base starting load libraries ==&lt;br /&gt;
&lt;br /&gt;
 basegfxmi.dll      &lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;behelper.uno.dll&amp;#039;&amp;#039;&amp;#039;  &amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;configmgr&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
 comphelp4MSC.dll   &lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;configmgr2.uno.dll&amp;#039;&amp;#039;&amp;#039;  &amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;configmgr&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;dnd.dll&amp;#039;&amp;#039;&amp;#039;  &amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;dtrans&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;           &lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;fsstorage.uno.dll&amp;#039;&amp;#039;&amp;#039;  &amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;svtools&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;  &lt;br /&gt;
 fwemi.dll          &lt;br /&gt;
 fwimi.dll          &lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;fwkmi.dll&amp;#039;&amp;#039;&amp;#039;  &amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;framework&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;         &lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;fwlmi.dll&amp;#039;&amp;#039;&amp;#039;  &amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;framework&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;               &lt;br /&gt;
 i18nisolang1MSC.dll&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;i18npool.uno.dll&amp;#039;&amp;#039;&amp;#039;  &amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;i18npool&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;  &lt;br /&gt;
 i18nutilMSC.dll    &lt;br /&gt;
 icudt40.dll        &lt;br /&gt;
 icuin40.dll        &lt;br /&gt;
 icuuc40.dll        &lt;br /&gt;
 jmi_g.dll          &lt;br /&gt;
 lngmi.dll          &lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;localebe1.uno.dll&amp;#039;&amp;#039;&amp;#039;  &amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;shell&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;  &lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;package2.dll&amp;#039;&amp;#039;&amp;#039;  &amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;package&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;sax.uno.dll&amp;#039;&amp;#039;&amp;#039;  &amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;sax&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
 saxmi.dll          &lt;br /&gt;
 sbmi.dll           &lt;br /&gt;
 sfxmi.dll          &lt;br /&gt;
 sofficeapp.dll     &lt;br /&gt;
 sotmi.dll          &lt;br /&gt;
 splmi.dll          &lt;br /&gt;
 svlmi.dll          &lt;br /&gt;
 svtmi.dll          &lt;br /&gt;
 sysmgr1.uno.dll    &lt;br /&gt;
 tkmi.dll           &lt;br /&gt;
 tlmi.dll           &lt;br /&gt;
 ucb1.dll           &lt;br /&gt;
 ucbhelper4MSC.dll  &lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;ucpfile1.dll&amp;#039;&amp;#039;&amp;#039;  &amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;ucb&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
 utlmi.dll          &lt;br /&gt;
 vclmi.dll          &lt;br /&gt;
 vos3MSC.dll        &lt;br /&gt;
 xcrmi.dll          &lt;br /&gt;
 xomi.dll&lt;br /&gt;
== Write/Calc/Impress starting load libraries ==&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;fileacc.dll&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;filterconfig1.dll&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;ftransl.dll&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;guesslangmi.dll&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;ldapbe2.uno.dll&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;mcnttype.dll&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;sysdtrans.dll&amp;#039;&amp;#039;&amp;#039; &lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;ucpexpand1.uno.dll&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;unoxmlmi.dll&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;uuimi.dll&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;xstor.dll&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
== Write/Calc/Impress starting load libraries ==&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;evtatt.dll&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;frmmi.dll&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;hyphenmi.dll&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;lnthmi.dll&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;spellmi.dll&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;xmlsecurity.dll&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
= Rewrite the uno export method =&lt;br /&gt;
I will &amp;#039;&amp;#039;&amp;#039;behelper.uno.dll&amp;#039;&amp;#039;&amp;#039; as example.&lt;br /&gt;
&lt;br /&gt;
== Implement new method ==&lt;br /&gt;
As we know, This library&amp;#039;s UNO method is define in &amp;quot;configmgr/source/backendhelper/componentdf.cxx&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Now we will copy that file to a new file &amp;quot;configmgr/source/backendhelper/componentdf_merger.cxx&amp;quot;.&lt;br /&gt;
And update the uno methods name like this([[Performance/Ideas/Easy_UNO_Services_Merging]]):&lt;br /&gt;
&lt;br /&gt;
 component_getImplementationEnvironment_&amp;#039;&amp;#039;behelper&amp;#039;&amp;#039;&lt;br /&gt;
 component_writeInfo_&amp;#039;&amp;#039;behelper&amp;#039;&amp;#039;&lt;br /&gt;
 component_getFactory_&amp;#039;&amp;#039;behelper&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
== Compile new lib file ==&lt;br /&gt;
Now we can update the &amp;quot;configmgr/source/backendhelper/makefile.mk&amp;quot;, and compile the &amp;quot;behelper_merger.lib&amp;quot; file.&lt;br /&gt;
Add these content into this file.&lt;br /&gt;
 &lt;br /&gt;
 LIB2TARGET=$(SLB)$/&amp;#039;&amp;#039;behelper_merger.lib&amp;#039;&amp;#039;        &lt;br /&gt;
 LIB2OBJFILES=\&lt;br /&gt;
        $(SLO)$/backendlayerhelper.obj \&lt;br /&gt;
        $(SLO)$/&amp;#039;&amp;#039;componentdf_merger.obj&amp;#039;&amp;#039;&lt;br /&gt;
== Deliver merger lib to solver dir ==&lt;br /&gt;
Update the &amp;quot;configmgr/prj/d.lst&amp;quot;, add these content into this file&lt;br /&gt;
&lt;br /&gt;
 mkdir: %_DEST%\slb%_EXT%\base_merger&lt;br /&gt;
 ..\%__SRC%\slb\configmgr.lib %_DEST%\slb%_EXT%\base_merger\behelper_merger.lib&lt;br /&gt;
 ..\%__SRC%\slb\configmgr.lin %_DEST%\slb%_EXT%\base_merger\behelper_merger.lin&lt;br /&gt;
&lt;br /&gt;
Now dealing with a dynamic library of the complete process has been completed.&lt;br /&gt;
&lt;br /&gt;
= Merger liberary uno method implement =&lt;br /&gt;
We will implement these process in &amp;quot;postprocess&amp;quot; module.&lt;br /&gt;
== &amp;quot;merger&amp;quot; folder ==&lt;br /&gt;
Create new &amp;quot;postprocess/merger&amp;quot; folder, and add these content to &amp;quot;postprocess/prj/build.lst&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
 +po postprocess\merger nmake - all po_merger NULL&lt;br /&gt;
 -po postprocess\checkxml nmake - all po_checkxml NULL&lt;br /&gt;
 +po postprocess\checkxml nmake - all po_checkxml po_merger NULL&lt;br /&gt;
== &amp;quot;merger_XXX.cxx&amp;quot; file ==&lt;br /&gt;
Create new &amp;quot;postprocess/merger/merger_base.cxx&amp;quot; file.&lt;br /&gt;
And this file will be:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;cppuhelper/factory.hxx&amp;gt;                                                                     &lt;br /&gt;
                                                                                                        &lt;br /&gt;
#define DECLARE_UNO_API( model ) \                                                                      &lt;br /&gt;
void component_getImplementationEnvironment_##model	\                                                &lt;br /&gt;
(const sal_Char	**, uno_Environment);	\                                                            &lt;br /&gt;
sal_Bool component_writeInfo_##model	\                                                                &lt;br /&gt;
(void *, void *);	\                                                                                    &lt;br /&gt;
void* component_getFactory_##model	\                                                                    &lt;br /&gt;
(const sal_Char*, void *, void *);&lt;br /&gt;
//  &lt;br /&gt;
#define CALL_UNO_API_WRITER_INFO(model ) \                                                              &lt;br /&gt;
	if( !component_writeInfo_##model( pServiceManager, 	pRegistryKey) )	\                                &lt;br /&gt;
	{	return sal_False;		}                                                                        &lt;br /&gt;
//&lt;br /&gt;
#define CALL_UNO_API_GET_FACTORY(model ) \                                                              &lt;br /&gt;
	if( NULL != (pFactory = component_getFactory_##model( pImplName, pServiceManager, pRegistryKey)) )	\&lt;br /&gt;
	{	return pFactory;		}                                                                        &lt;br /&gt;
//&lt;br /&gt;
rtl_StandardModuleCount g_moduleCount = MODULE_COUNT_INIT;                                              &lt;br /&gt;
&lt;br /&gt;
DECLARE_UNO_API( behelper ); &lt;br /&gt;
&lt;br /&gt;
extern &amp;quot;C&amp;quot;                                                                                              &lt;br /&gt;
{                                                                                                       &lt;br /&gt;
void SAL_CALL component_getImplementationEnvironment(                                                   &lt;br /&gt;
	const sal_Char ** ppEnvTypeName, uno_Environment ** )                                                &lt;br /&gt;
{                                                                                                       &lt;br /&gt;
	*ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME;                                                 &lt;br /&gt;
}&lt;br /&gt;
sal_Bool SAL_CALL component_writeInfo( void * pServiceManager, void * pRegistryKey )                    &lt;br /&gt;
{                                                                                                       &lt;br /&gt;
	CALL_UNO_API_WRITER_INFO( behelper );                                                                &lt;br /&gt;
	return sal_True;                                                                                     &lt;br /&gt;
}&lt;br /&gt;
void * SAL_CALL component_getFactory                                                                    &lt;br /&gt;
(const sal_Char * pImplName, void * pServiceManager, void * pRegistryKey)                               &lt;br /&gt;
{                                                                                                       &lt;br /&gt;
	void * pFactory = NULL;                                                                              &lt;br /&gt;
	CALL_UNO_API_GET_FACTORY( behelper );                                                                &lt;br /&gt;
	return pFactory;                                                                                     &lt;br /&gt;
}                                                                                                       &lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
== &amp;quot;makefile.mk&amp;quot; file ==&lt;br /&gt;
Create new &amp;quot;postprocess/merger/makefile.mk&amp;quot; file.&lt;br /&gt;
and this file will be&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;&amp;quot;&amp;gt;&lt;br /&gt;
PRJ=..&lt;br /&gt;
&lt;br /&gt;
PRJNAME=postprocess&lt;br /&gt;
TARGET=merger_base&lt;br /&gt;
&lt;br /&gt;
.INCLUDE : settings.mk&lt;br /&gt;
&lt;br /&gt;
# ------ merger_base.uno ------&lt;br /&gt;
SHL1TARGET=	merger_base.uno&lt;br /&gt;
SHL1OBJS=	\&lt;br /&gt;
	$(SLO)$/merger_base.obj&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
SHL1STDLIBS= \&lt;br /&gt;
        $(CPPUHELPERLIB) \&lt;br /&gt;
        $(CPPULIB) \&lt;br /&gt;
        $(SALLIB)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
SHL1DEPN=&lt;br /&gt;
SHL1IMPLIB=	i$(TARGET)&lt;br /&gt;
&lt;br /&gt;
SHL1LIBS=	\&lt;br /&gt;
	$(SOLARVER)$/$(INPATH)$/slb/base_merger/behelper_merger.lib &lt;br /&gt;
&lt;br /&gt;
SHL1DEF=	$(MISC)$/$(SHL1TARGET).def&lt;br /&gt;
DEF1NAME=	$(SHL1TARGET)&lt;br /&gt;
DEF1EXPORTFILE=	exports.dxp&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
== &amp;quot;exports.dxp&amp;quot; file ==&lt;br /&gt;
Create new &amp;quot;postprocess/merger/exports.dxp&amp;quot; file.&lt;br /&gt;
And this file will be:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;&amp;quot;&amp;gt;&lt;br /&gt;
component_getImplementationEnvironment&lt;br /&gt;
component_writeInfo&lt;br /&gt;
component_getFactory&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
== Deliver ==&lt;br /&gt;
Deliver merger library to solver dir.&lt;br /&gt;
Add this content to file &amp;quot;postprocess/prj/d.lst&amp;quot;:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;&amp;quot;&amp;gt;&lt;br /&gt;
..\%__SRC%\bin\merger_base.uno.dll %_DEST%\bin%_EXT%\merger_base.uno.dll&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now we finished compile merger library process.&lt;br /&gt;
&lt;br /&gt;
= Update the packge script file =&lt;br /&gt;
These process will be &amp;quot;scp2&amp;quot; module, has two types thing:&lt;br /&gt;
One is add merger libraries to package, the other is that do not add mergered libraries to package.&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Clear the mergered libraries &amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
update &amp;quot;scp2/source/ooo/file_library_ooo.scp&amp;quot;:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;&amp;quot;&amp;gt;&lt;br /&gt;
-File gid_File_Lib_Behelper&lt;br /&gt;
-    TXT_FILE_BODY;&lt;br /&gt;
-    Styles = (PACKED,UNO_COMPONENT);&lt;br /&gt;
-    RegistryID = gid_Starregistry_Services_Rdb;&lt;br /&gt;
-    Dir = gid_Dir_Program;&lt;br /&gt;
-  #ifdef UNX&lt;br /&gt;
-    Name = STRING(CONCAT2(behelper.uno,UNXSUFFIX));&lt;br /&gt;
-  #else&lt;br /&gt;
-    Name = &amp;quot;behelper.uno.dll&amp;quot;;&lt;br /&gt;
-  #endif&lt;br /&gt;
-End&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
update &amp;quot;scp2/source/ooo/module_hidden_ooo.scp&amp;quot;:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;&amp;quot;&amp;gt;&lt;br /&gt;
-gid_File_Lib_Behelper,&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Add the merger libraries &amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
update &amp;quot;scp2/source/ooo/file_library_ooo.scp&amp;quot;:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;&amp;quot;&amp;gt;&lt;br /&gt;
+File gid_File_Lib_Merger_base&lt;br /&gt;
+     TXT_FILE_BODY;&lt;br /&gt;
+     Styles = (PACKED,UNO_COMPONENT);&lt;br /&gt;
+     RegistryID = gid_Starregistry_Services_Rdb;&lt;br /&gt;
+     Dir = gid_Dir_Program;&lt;br /&gt;
+   #ifdef UNX&lt;br /&gt;
+    Name = STRING(CONCAT2(merger_base.uno,UNXSUFFIX));&lt;br /&gt;
+   #else&lt;br /&gt;
+    Name = &amp;quot;merger_base.uno.dll&amp;quot;;&lt;br /&gt;
+   #endif&lt;br /&gt;
+ End&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
update &amp;quot;scp2/source/ooo/module_hidden_ooo.scp&amp;quot;:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;&amp;quot;&amp;gt;&lt;br /&gt;
+gid_File_Lib_Merger_base,&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Problem =&lt;br /&gt;
When I merger those library, that will report error when load OOo with UNO component. I do&amp;#039;t know why.&lt;/div&gt;</summary>
		<author><name>Zengliangjun</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=Performance/Implement_Merger_Dynamic_Library&amp;diff=158183</id>
		<title>Performance/Implement Merger Dynamic Library</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=Performance/Implement_Merger_Dynamic_Library&amp;diff=158183"/>
		<updated>2010-03-02T08:19:27Z</updated>

		<summary type="html">&lt;p&gt;Zengliangjun: /* Deliver */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Something about merger dynamic library please view [[Merge_UNO_Dlls]] and [[Performance/Ideas/Easy_UNO_Services_Merging]].&lt;br /&gt;
&lt;br /&gt;
I will disucss the complete process here(exclude UNO runtime libraries).&lt;br /&gt;
&lt;br /&gt;
= Analyze the loading libraries =&lt;br /&gt;
&amp;quot;&amp;#039;&amp;#039;&amp;#039;B&amp;#039;&amp;#039;&amp;#039;&amp;quot; is library&amp;#039;s name.&lt;br /&gt;
&lt;br /&gt;
&amp;quot;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;I&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;quot; is module name.&lt;br /&gt;
&lt;br /&gt;
== OOo base starting load libraries ==&lt;br /&gt;
&lt;br /&gt;
 basegfxmi.dll      &lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;behelper.uno.dll&amp;#039;&amp;#039;&amp;#039;  &amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;configmgr&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
 comphelp4MSC.dll   &lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;configmgr2.uno.dll&amp;#039;&amp;#039;&amp;#039;  &amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;configmgr&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;dnd.dll&amp;#039;&amp;#039;&amp;#039;  &amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;dtrans&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;           &lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;fsstorage.uno.dll&amp;#039;&amp;#039;&amp;#039;  &amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;svtools&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;  &lt;br /&gt;
 fwemi.dll          &lt;br /&gt;
 fwimi.dll          &lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;fwkmi.dll&amp;#039;&amp;#039;&amp;#039;  &amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;framework&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;         &lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;fwlmi.dll&amp;#039;&amp;#039;&amp;#039;  &amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;framework&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;               &lt;br /&gt;
 i18nisolang1MSC.dll&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;i18npool.uno.dll&amp;#039;&amp;#039;&amp;#039;  &amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;i18npool&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;  &lt;br /&gt;
 i18nutilMSC.dll    &lt;br /&gt;
 icudt40.dll        &lt;br /&gt;
 icuin40.dll        &lt;br /&gt;
 icuuc40.dll        &lt;br /&gt;
 jmi_g.dll          &lt;br /&gt;
 lngmi.dll          &lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;localebe1.uno.dll&amp;#039;&amp;#039;&amp;#039;  &amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;shell&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;  &lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;package2.dll&amp;#039;&amp;#039;&amp;#039;  &amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;package&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;sax.uno.dll&amp;#039;&amp;#039;&amp;#039;  &amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;sax&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
 saxmi.dll          &lt;br /&gt;
 sbmi.dll           &lt;br /&gt;
 sfxmi.dll          &lt;br /&gt;
 sofficeapp.dll     &lt;br /&gt;
 sotmi.dll          &lt;br /&gt;
 splmi.dll          &lt;br /&gt;
 svlmi.dll          &lt;br /&gt;
 svtmi.dll          &lt;br /&gt;
 sysmgr1.uno.dll    &lt;br /&gt;
 tkmi.dll           &lt;br /&gt;
 tlmi.dll           &lt;br /&gt;
 ucb1.dll           &lt;br /&gt;
 ucbhelper4MSC.dll  &lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;ucpfile1.dll&amp;#039;&amp;#039;&amp;#039;  &amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;ucb&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
 utlmi.dll          &lt;br /&gt;
 vclmi.dll          &lt;br /&gt;
 vos3MSC.dll        &lt;br /&gt;
 xcrmi.dll          &lt;br /&gt;
 xomi.dll&lt;br /&gt;
== Write/Calc/Impress starting load libraries ==&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;fileacc.dll&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;filterconfig1.dll&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;ftransl.dll&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;guesslangmi.dll&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;ldapbe2.uno.dll&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;mcnttype.dll&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;sysdtrans.dll&amp;#039;&amp;#039;&amp;#039; &lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;ucpexpand1.uno.dll&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;unoxmlmi.dll&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;uuimi.dll&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;xstor.dll&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
== Write/Calc/Impress starting load libraries ==&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;evtatt.dll&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;frmmi.dll&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;hyphenmi.dll&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;lnthmi.dll&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;spellmi.dll&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;xmlsecurity.dll&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
= Rewrite the uno export method =&lt;br /&gt;
I will &amp;#039;&amp;#039;&amp;#039;behelper.uno.dll&amp;#039;&amp;#039;&amp;#039; as example.&lt;br /&gt;
&lt;br /&gt;
== Implement new method ==&lt;br /&gt;
As we know, This library&amp;#039;s UNO method is define in &amp;quot;configmgr/source/backendhelper/componentdf.cxx&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Now we will copy that file to a new file &amp;quot;configmgr/source/backendhelper/componentdf_merger.cxx&amp;quot;.&lt;br /&gt;
And update the uno methods name like this([[Performance/Ideas/Easy_UNO_Services_Merging]]):&lt;br /&gt;
&lt;br /&gt;
 component_getImplementationEnvironment_&amp;#039;&amp;#039;behelper&amp;#039;&amp;#039;&lt;br /&gt;
 component_writeInfo_&amp;#039;&amp;#039;behelper&amp;#039;&amp;#039;&lt;br /&gt;
 component_getFactory_&amp;#039;&amp;#039;behelper&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
== Compile new lib file ==&lt;br /&gt;
Now we can update the &amp;quot;configmgr/source/backendhelper/makefile.mk&amp;quot;, and compile the &amp;quot;behelper_merger.lib&amp;quot; file.&lt;br /&gt;
Add these content into this file.&lt;br /&gt;
 &lt;br /&gt;
 LIB2TARGET=$(SLB)$/&amp;#039;&amp;#039;behelper_merger.lib&amp;#039;&amp;#039;        &lt;br /&gt;
 LIB2OBJFILES=\&lt;br /&gt;
        $(SLO)$/backendlayerhelper.obj \&lt;br /&gt;
        $(SLO)$/&amp;#039;&amp;#039;componentdf_merger.obj&amp;#039;&amp;#039;&lt;br /&gt;
== Deliver merger lib to solver dir ==&lt;br /&gt;
Update the &amp;quot;configmgr/prj/d.lst&amp;quot;, add these content into this file&lt;br /&gt;
&lt;br /&gt;
 mkdir: %_DEST%\slb%_EXT%\base_merger&lt;br /&gt;
 ..\%__SRC%\slb\configmgr.lib %_DEST%\slb%_EXT%\base_merger\behelper_merger.lib&lt;br /&gt;
 ..\%__SRC%\slb\configmgr.lin %_DEST%\slb%_EXT%\base_merger\behelper_merger.lin&lt;br /&gt;
&lt;br /&gt;
Now dealing with a dynamic library of the complete process has been completed.&lt;br /&gt;
&lt;br /&gt;
= Merger liberary uno method implement =&lt;br /&gt;
We will implement these process in &amp;quot;postprocess&amp;quot; module.&lt;br /&gt;
== &amp;quot;merger&amp;quot; folder ==&lt;br /&gt;
Create new &amp;quot;postprocess/merger&amp;quot; folder, and add these content to &amp;quot;postprocess/prj/build.lst&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
 +po postprocess\merger nmake - all po_merger NULL&lt;br /&gt;
 -po postprocess\checkxml nmake - all po_checkxml NULL&lt;br /&gt;
 +po postprocess\checkxml nmake - all po_checkxml po_merger NULL&lt;br /&gt;
== &amp;quot;merger_XXX.cxx&amp;quot; file ==&lt;br /&gt;
Create new &amp;quot;postprocess/merger/merger_base.cxx&amp;quot; file.&lt;br /&gt;
And this file will be:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;cppuhelper/factory.hxx&amp;gt;                                                                     &lt;br /&gt;
                                                                                                        &lt;br /&gt;
#define DECLARE_UNO_API( model ) \                                                                      &lt;br /&gt;
void component_getImplementationEnvironment_##model	\                                                &lt;br /&gt;
(const sal_Char	**, uno_Environment);	\                                                            &lt;br /&gt;
sal_Bool component_writeInfo_##model	\                                                                &lt;br /&gt;
(void *, void *);	\                                                                                    &lt;br /&gt;
void* component_getFactory_##model	\                                                                    &lt;br /&gt;
(const sal_Char*, void *, void *);&lt;br /&gt;
//  &lt;br /&gt;
#define CALL_UNO_API_WRITER_INFO(model ) \                                                              &lt;br /&gt;
	if( !component_writeInfo_##model( pServiceManager, 	pRegistryKey) )	\                                &lt;br /&gt;
	{	return sal_False;		}                                                                        &lt;br /&gt;
//&lt;br /&gt;
#define CALL_UNO_API_GET_FACTORY(model ) \                                                              &lt;br /&gt;
	if( NULL != (pFactory = component_getFactory_##model( pImplName, pServiceManager, pRegistryKey)) )	\&lt;br /&gt;
	{	return pFactory;		}                                                                        &lt;br /&gt;
//&lt;br /&gt;
rtl_StandardModuleCount g_moduleCount = MODULE_COUNT_INIT;                                              &lt;br /&gt;
&lt;br /&gt;
DECLARE_UNO_API( behelper ); &lt;br /&gt;
&lt;br /&gt;
extern &amp;quot;C&amp;quot;                                                                                              &lt;br /&gt;
{                                                                                                       &lt;br /&gt;
void SAL_CALL component_getImplementationEnvironment(                                                   &lt;br /&gt;
	const sal_Char ** ppEnvTypeName, uno_Environment ** )                                                &lt;br /&gt;
{                                                                                                       &lt;br /&gt;
	*ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME;                                                 &lt;br /&gt;
}&lt;br /&gt;
sal_Bool SAL_CALL component_writeInfo( void * pServiceManager, void * pRegistryKey )                    &lt;br /&gt;
{                                                                                                       &lt;br /&gt;
	CALL_UNO_API_WRITER_INFO( behelper );                                                                &lt;br /&gt;
	return sal_True;                                                                                     &lt;br /&gt;
}&lt;br /&gt;
void * SAL_CALL component_getFactory                                                                    &lt;br /&gt;
(const sal_Char * pImplName, void * pServiceManager, void * pRegistryKey)                               &lt;br /&gt;
{                                                                                                       &lt;br /&gt;
	void * pFactory = NULL;                                                                              &lt;br /&gt;
	CALL_UNO_API_GET_FACTORY( behelper );                                                                &lt;br /&gt;
	return pFactory;                                                                                     &lt;br /&gt;
}                                                                                                       &lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
== &amp;quot;makefile.mk&amp;quot; file ==&lt;br /&gt;
Create new &amp;quot;postprocess/merger/makefile.mk&amp;quot; file.&lt;br /&gt;
and this file will be&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;&amp;quot;&amp;gt;&lt;br /&gt;
PRJ=..&lt;br /&gt;
&lt;br /&gt;
PRJNAME=postprocess&lt;br /&gt;
TARGET=merger_base&lt;br /&gt;
&lt;br /&gt;
.INCLUDE : settings.mk&lt;br /&gt;
&lt;br /&gt;
# ------ merger_base.uno ------&lt;br /&gt;
SHL1TARGET=	merger_base.uno&lt;br /&gt;
SHL1OBJS=	\&lt;br /&gt;
	$(SLO)$/merger_base.obj&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
SHL1STDLIBS= \&lt;br /&gt;
        $(CPPUHELPERLIB) \&lt;br /&gt;
        $(CPPULIB) \&lt;br /&gt;
        $(SALLIB)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
SHL1DEPN=&lt;br /&gt;
SHL1IMPLIB=	i$(TARGET)&lt;br /&gt;
&lt;br /&gt;
SHL1LIBS=	\&lt;br /&gt;
	$(SOLARVER)$/$(INPATH)$/slb/base_merger/behelper_merger.lib &lt;br /&gt;
&lt;br /&gt;
SHL1DEF=	$(MISC)$/$(SHL1TARGET).def&lt;br /&gt;
DEF1NAME=	$(SHL1TARGET)&lt;br /&gt;
DEF1EXPORTFILE=	exports.dxp&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
== &amp;quot;exports.dxp&amp;quot; file ==&lt;br /&gt;
Create new &amp;quot;postprocess/merger/exports.dxp&amp;quot; file.&lt;br /&gt;
And this file will be:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;&amp;quot;&amp;gt;&lt;br /&gt;
component_getImplementationEnvironment&lt;br /&gt;
component_writeInfo&lt;br /&gt;
component_getFactory&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
== Deliver ==&lt;br /&gt;
Deliver merger library to solver dir.&lt;br /&gt;
Add this content to file &amp;quot;postprocess/prj/d.lst&amp;quot;:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;&amp;quot;&amp;gt;&lt;br /&gt;
..\%__SRC%\bin\merger_base.uno.dll %_DEST%\bin%_EXT%\merger_base.uno.dll&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now we finished compile merger library process.&lt;br /&gt;
&lt;br /&gt;
= Update the packge script file =&lt;br /&gt;
These process will be &amp;quot;scp2&amp;quot; module, has two types thing:&lt;br /&gt;
One is add merger libraries to package, the other is that do not add mergered libraries to package.&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Clear the mergered libraries &amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
update &amp;quot;scp2/source/ooo/file_library_ooo.scp&amp;quot;:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;&amp;quot;&amp;gt;&lt;br /&gt;
-File gid_File_Lib_Behelper&lt;br /&gt;
-    TXT_FILE_BODY;&lt;br /&gt;
-    Styles = (PACKED,UNO_COMPONENT);&lt;br /&gt;
-    RegistryID = gid_Starregistry_Services_Rdb;&lt;br /&gt;
-    Dir = gid_Dir_Program;&lt;br /&gt;
-  #ifdef UNX&lt;br /&gt;
-    Name = STRING(CONCAT2(behelper.uno,UNXSUFFIX));&lt;br /&gt;
-  #else&lt;br /&gt;
-    Name = &amp;quot;behelper.uno.dll&amp;quot;;&lt;br /&gt;
-  #endif&lt;br /&gt;
-End&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
update &amp;quot;scp2/source/ooo/module_hidden_ooo.scp&amp;quot;:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;&amp;quot;&amp;gt;&lt;br /&gt;
-gid_File_Lib_Behelper,&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Add the merger libraries &amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
update &amp;quot;scp2/source/ooo/file_library_ooo.scp&amp;quot;:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;&amp;quot;&amp;gt;&lt;br /&gt;
+File gid_File_Lib_Merger_base&lt;br /&gt;
+     TXT_FILE_BODY;&lt;br /&gt;
+     Styles = (PACKED,UNO_COMPONENT);&lt;br /&gt;
+     RegistryID = gid_Starregistry_Services_Rdb;&lt;br /&gt;
+     Dir = gid_Dir_Program;&lt;br /&gt;
+   #ifdef UNX&lt;br /&gt;
+    Name = STRING(CONCAT2(merger_base.uno,UNXSUFFIX));&lt;br /&gt;
+   #else&lt;br /&gt;
+    Name = &amp;quot;merger_base.uno.dll&amp;quot;;&lt;br /&gt;
+   #endif&lt;br /&gt;
+ End&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
update &amp;quot;scp2/source/ooo/module_hidden_ooo.scp&amp;quot;:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;&amp;quot;&amp;gt;&lt;br /&gt;
+gid_File_Lib_Merger_base,&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Zengliangjun</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=Performance/Implement_Merger_Dynamic_Library&amp;diff=158182</id>
		<title>Performance/Implement Merger Dynamic Library</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=Performance/Implement_Merger_Dynamic_Library&amp;diff=158182"/>
		<updated>2010-03-02T08:17:03Z</updated>

		<summary type="html">&lt;p&gt;Zengliangjun: Created page with &amp;#039;Something about merger dynamic library please view Merge_UNO_Dlls and Performance/Ideas/Easy_UNO_Services_Merging.  I will disucss the complete process here(exclude UNO r…&amp;#039;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Something about merger dynamic library please view [[Merge_UNO_Dlls]] and [[Performance/Ideas/Easy_UNO_Services_Merging]].&lt;br /&gt;
&lt;br /&gt;
I will disucss the complete process here(exclude UNO runtime libraries).&lt;br /&gt;
&lt;br /&gt;
= Analyze the loading libraries =&lt;br /&gt;
&amp;quot;&amp;#039;&amp;#039;&amp;#039;B&amp;#039;&amp;#039;&amp;#039;&amp;quot; is library&amp;#039;s name.&lt;br /&gt;
&lt;br /&gt;
&amp;quot;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;I&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;quot; is module name.&lt;br /&gt;
&lt;br /&gt;
== OOo base starting load libraries ==&lt;br /&gt;
&lt;br /&gt;
 basegfxmi.dll      &lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;behelper.uno.dll&amp;#039;&amp;#039;&amp;#039;  &amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;configmgr&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
 comphelp4MSC.dll   &lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;configmgr2.uno.dll&amp;#039;&amp;#039;&amp;#039;  &amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;configmgr&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;dnd.dll&amp;#039;&amp;#039;&amp;#039;  &amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;dtrans&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;           &lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;fsstorage.uno.dll&amp;#039;&amp;#039;&amp;#039;  &amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;svtools&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;  &lt;br /&gt;
 fwemi.dll          &lt;br /&gt;
 fwimi.dll          &lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;fwkmi.dll&amp;#039;&amp;#039;&amp;#039;  &amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;framework&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;         &lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;fwlmi.dll&amp;#039;&amp;#039;&amp;#039;  &amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;framework&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;               &lt;br /&gt;
 i18nisolang1MSC.dll&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;i18npool.uno.dll&amp;#039;&amp;#039;&amp;#039;  &amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;i18npool&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;  &lt;br /&gt;
 i18nutilMSC.dll    &lt;br /&gt;
 icudt40.dll        &lt;br /&gt;
 icuin40.dll        &lt;br /&gt;
 icuuc40.dll        &lt;br /&gt;
 jmi_g.dll          &lt;br /&gt;
 lngmi.dll          &lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;localebe1.uno.dll&amp;#039;&amp;#039;&amp;#039;  &amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;shell&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;  &lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;package2.dll&amp;#039;&amp;#039;&amp;#039;  &amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;package&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;sax.uno.dll&amp;#039;&amp;#039;&amp;#039;  &amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;sax&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
 saxmi.dll          &lt;br /&gt;
 sbmi.dll           &lt;br /&gt;
 sfxmi.dll          &lt;br /&gt;
 sofficeapp.dll     &lt;br /&gt;
 sotmi.dll          &lt;br /&gt;
 splmi.dll          &lt;br /&gt;
 svlmi.dll          &lt;br /&gt;
 svtmi.dll          &lt;br /&gt;
 sysmgr1.uno.dll    &lt;br /&gt;
 tkmi.dll           &lt;br /&gt;
 tlmi.dll           &lt;br /&gt;
 ucb1.dll           &lt;br /&gt;
 ucbhelper4MSC.dll  &lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;ucpfile1.dll&amp;#039;&amp;#039;&amp;#039;  &amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;ucb&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
 utlmi.dll          &lt;br /&gt;
 vclmi.dll          &lt;br /&gt;
 vos3MSC.dll        &lt;br /&gt;
 xcrmi.dll          &lt;br /&gt;
 xomi.dll&lt;br /&gt;
== Write/Calc/Impress starting load libraries ==&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;fileacc.dll&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;filterconfig1.dll&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;ftransl.dll&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;guesslangmi.dll&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;ldapbe2.uno.dll&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;mcnttype.dll&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;sysdtrans.dll&amp;#039;&amp;#039;&amp;#039; &lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;ucpexpand1.uno.dll&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;unoxmlmi.dll&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;uuimi.dll&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;xstor.dll&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
== Write/Calc/Impress starting load libraries ==&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;evtatt.dll&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;frmmi.dll&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;hyphenmi.dll&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;lnthmi.dll&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;spellmi.dll&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;xmlsecurity.dll&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
= Rewrite the uno export method =&lt;br /&gt;
I will &amp;#039;&amp;#039;&amp;#039;behelper.uno.dll&amp;#039;&amp;#039;&amp;#039; as example.&lt;br /&gt;
&lt;br /&gt;
== Implement new method ==&lt;br /&gt;
As we know, This library&amp;#039;s UNO method is define in &amp;quot;configmgr/source/backendhelper/componentdf.cxx&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Now we will copy that file to a new file &amp;quot;configmgr/source/backendhelper/componentdf_merger.cxx&amp;quot;.&lt;br /&gt;
And update the uno methods name like this([[Performance/Ideas/Easy_UNO_Services_Merging]]):&lt;br /&gt;
&lt;br /&gt;
 component_getImplementationEnvironment_&amp;#039;&amp;#039;behelper&amp;#039;&amp;#039;&lt;br /&gt;
 component_writeInfo_&amp;#039;&amp;#039;behelper&amp;#039;&amp;#039;&lt;br /&gt;
 component_getFactory_&amp;#039;&amp;#039;behelper&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
== Compile new lib file ==&lt;br /&gt;
Now we can update the &amp;quot;configmgr/source/backendhelper/makefile.mk&amp;quot;, and compile the &amp;quot;behelper_merger.lib&amp;quot; file.&lt;br /&gt;
Add these content into this file.&lt;br /&gt;
 &lt;br /&gt;
 LIB2TARGET=$(SLB)$/&amp;#039;&amp;#039;behelper_merger.lib&amp;#039;&amp;#039;        &lt;br /&gt;
 LIB2OBJFILES=\&lt;br /&gt;
        $(SLO)$/backendlayerhelper.obj \&lt;br /&gt;
        $(SLO)$/&amp;#039;&amp;#039;componentdf_merger.obj&amp;#039;&amp;#039;&lt;br /&gt;
== Deliver merger lib to solver dir ==&lt;br /&gt;
Update the &amp;quot;configmgr/prj/d.lst&amp;quot;, add these content into this file&lt;br /&gt;
&lt;br /&gt;
 mkdir: %_DEST%\slb%_EXT%\base_merger&lt;br /&gt;
 ..\%__SRC%\slb\configmgr.lib %_DEST%\slb%_EXT%\base_merger\behelper_merger.lib&lt;br /&gt;
 ..\%__SRC%\slb\configmgr.lin %_DEST%\slb%_EXT%\base_merger\behelper_merger.lin&lt;br /&gt;
&lt;br /&gt;
Now dealing with a dynamic library of the complete process has been completed.&lt;br /&gt;
&lt;br /&gt;
= Merger liberary uno method implement =&lt;br /&gt;
We will implement these process in &amp;quot;postprocess&amp;quot; module.&lt;br /&gt;
== &amp;quot;merger&amp;quot; folder ==&lt;br /&gt;
Create new &amp;quot;postprocess/merger&amp;quot; folder, and add these content to &amp;quot;postprocess/prj/build.lst&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
 +po postprocess\merger nmake - all po_merger NULL&lt;br /&gt;
 -po postprocess\checkxml nmake - all po_checkxml NULL&lt;br /&gt;
 +po postprocess\checkxml nmake - all po_checkxml po_merger NULL&lt;br /&gt;
== &amp;quot;merger_XXX.cxx&amp;quot; file ==&lt;br /&gt;
Create new &amp;quot;postprocess/merger/merger_base.cxx&amp;quot; file.&lt;br /&gt;
And this file will be:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;cppuhelper/factory.hxx&amp;gt;                                                                     &lt;br /&gt;
                                                                                                        &lt;br /&gt;
#define DECLARE_UNO_API( model ) \                                                                      &lt;br /&gt;
void component_getImplementationEnvironment_##model	\                                                &lt;br /&gt;
(const sal_Char	**, uno_Environment);	\                                                            &lt;br /&gt;
sal_Bool component_writeInfo_##model	\                                                                &lt;br /&gt;
(void *, void *);	\                                                                                    &lt;br /&gt;
void* component_getFactory_##model	\                                                                    &lt;br /&gt;
(const sal_Char*, void *, void *);&lt;br /&gt;
//  &lt;br /&gt;
#define CALL_UNO_API_WRITER_INFO(model ) \                                                              &lt;br /&gt;
	if( !component_writeInfo_##model( pServiceManager, 	pRegistryKey) )	\                                &lt;br /&gt;
	{	return sal_False;		}                                                                        &lt;br /&gt;
//&lt;br /&gt;
#define CALL_UNO_API_GET_FACTORY(model ) \                                                              &lt;br /&gt;
	if( NULL != (pFactory = component_getFactory_##model( pImplName, pServiceManager, pRegistryKey)) )	\&lt;br /&gt;
	{	return pFactory;		}                                                                        &lt;br /&gt;
//&lt;br /&gt;
rtl_StandardModuleCount g_moduleCount = MODULE_COUNT_INIT;                                              &lt;br /&gt;
&lt;br /&gt;
DECLARE_UNO_API( behelper ); &lt;br /&gt;
&lt;br /&gt;
extern &amp;quot;C&amp;quot;                                                                                              &lt;br /&gt;
{                                                                                                       &lt;br /&gt;
void SAL_CALL component_getImplementationEnvironment(                                                   &lt;br /&gt;
	const sal_Char ** ppEnvTypeName, uno_Environment ** )                                                &lt;br /&gt;
{                                                                                                       &lt;br /&gt;
	*ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME;                                                 &lt;br /&gt;
}&lt;br /&gt;
sal_Bool SAL_CALL component_writeInfo( void * pServiceManager, void * pRegistryKey )                    &lt;br /&gt;
{                                                                                                       &lt;br /&gt;
	CALL_UNO_API_WRITER_INFO( behelper );                                                                &lt;br /&gt;
	return sal_True;                                                                                     &lt;br /&gt;
}&lt;br /&gt;
void * SAL_CALL component_getFactory                                                                    &lt;br /&gt;
(const sal_Char * pImplName, void * pServiceManager, void * pRegistryKey)                               &lt;br /&gt;
{                                                                                                       &lt;br /&gt;
	void * pFactory = NULL;                                                                              &lt;br /&gt;
	CALL_UNO_API_GET_FACTORY( behelper );                                                                &lt;br /&gt;
	return pFactory;                                                                                     &lt;br /&gt;
}                                                                                                       &lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
== &amp;quot;makefile.mk&amp;quot; file ==&lt;br /&gt;
Create new &amp;quot;postprocess/merger/makefile.mk&amp;quot; file.&lt;br /&gt;
and this file will be&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;&amp;quot;&amp;gt;&lt;br /&gt;
PRJ=..&lt;br /&gt;
&lt;br /&gt;
PRJNAME=postprocess&lt;br /&gt;
TARGET=merger_base&lt;br /&gt;
&lt;br /&gt;
.INCLUDE : settings.mk&lt;br /&gt;
&lt;br /&gt;
# ------ merger_base.uno ------&lt;br /&gt;
SHL1TARGET=	merger_base.uno&lt;br /&gt;
SHL1OBJS=	\&lt;br /&gt;
	$(SLO)$/merger_base.obj&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
SHL1STDLIBS= \&lt;br /&gt;
        $(CPPUHELPERLIB) \&lt;br /&gt;
        $(CPPULIB) \&lt;br /&gt;
        $(SALLIB)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
SHL1DEPN=&lt;br /&gt;
SHL1IMPLIB=	i$(TARGET)&lt;br /&gt;
&lt;br /&gt;
SHL1LIBS=	\&lt;br /&gt;
	$(SOLARVER)$/$(INPATH)$/slb/base_merger/behelper_merger.lib &lt;br /&gt;
&lt;br /&gt;
SHL1DEF=	$(MISC)$/$(SHL1TARGET).def&lt;br /&gt;
DEF1NAME=	$(SHL1TARGET)&lt;br /&gt;
DEF1EXPORTFILE=	exports.dxp&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
== &amp;quot;exports.dxp&amp;quot; file ==&lt;br /&gt;
Create new &amp;quot;postprocess/merger/exports.dxp&amp;quot; file.&lt;br /&gt;
And this file will be:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;&amp;quot;&amp;gt;&lt;br /&gt;
component_getImplementationEnvironment&lt;br /&gt;
component_writeInfo&lt;br /&gt;
component_getFactory&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
== Deliver ==&lt;br /&gt;
Deliver merger library to solver dir.&lt;br /&gt;
Add this content to file &amp;quot;postprocess/prj/d.lst&amp;quot;:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;&amp;quot;&amp;gt;&lt;br /&gt;
..\%__SRC%\bin\merger_base.uno.dll %_DEST%\bin%_EXT%\merger_base.uno.dll&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now we completed process to compile merger library.&lt;br /&gt;
= Update the packge script file =&lt;br /&gt;
These process will be &amp;quot;scp2&amp;quot; module, has two types thing:&lt;br /&gt;
One is add merger libraries to package, the other is that do not add mergered libraries to package.&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Clear the mergered libraries &amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
update &amp;quot;scp2/source/ooo/file_library_ooo.scp&amp;quot;:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;&amp;quot;&amp;gt;&lt;br /&gt;
-File gid_File_Lib_Behelper&lt;br /&gt;
-    TXT_FILE_BODY;&lt;br /&gt;
-    Styles = (PACKED,UNO_COMPONENT);&lt;br /&gt;
-    RegistryID = gid_Starregistry_Services_Rdb;&lt;br /&gt;
-    Dir = gid_Dir_Program;&lt;br /&gt;
-  #ifdef UNX&lt;br /&gt;
-    Name = STRING(CONCAT2(behelper.uno,UNXSUFFIX));&lt;br /&gt;
-  #else&lt;br /&gt;
-    Name = &amp;quot;behelper.uno.dll&amp;quot;;&lt;br /&gt;
-  #endif&lt;br /&gt;
-End&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
update &amp;quot;scp2/source/ooo/module_hidden_ooo.scp&amp;quot;:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;&amp;quot;&amp;gt;&lt;br /&gt;
-gid_File_Lib_Behelper,&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Add the merger libraries &amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
update &amp;quot;scp2/source/ooo/file_library_ooo.scp&amp;quot;:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;&amp;quot;&amp;gt;&lt;br /&gt;
+File gid_File_Lib_Merger_base&lt;br /&gt;
+     TXT_FILE_BODY;&lt;br /&gt;
+     Styles = (PACKED,UNO_COMPONENT);&lt;br /&gt;
+     RegistryID = gid_Starregistry_Services_Rdb;&lt;br /&gt;
+     Dir = gid_Dir_Program;&lt;br /&gt;
+   #ifdef UNX&lt;br /&gt;
+    Name = STRING(CONCAT2(merger_base.uno,UNXSUFFIX));&lt;br /&gt;
+   #else&lt;br /&gt;
+    Name = &amp;quot;merger_base.uno.dll&amp;quot;;&lt;br /&gt;
+   #endif&lt;br /&gt;
+ End&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
update &amp;quot;scp2/source/ooo/module_hidden_ooo.scp&amp;quot;:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;&amp;quot;&amp;gt;&lt;br /&gt;
+gid_File_Lib_Merger_base,&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Zengliangjun</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=Performance/Improver_performance_about_string&amp;diff=158181</id>
		<title>Performance/Improver performance about string</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=Performance/Improver_performance_about_string&amp;diff=158181"/>
		<updated>2010-03-02T05:38:02Z</updated>

		<summary type="html">&lt;p&gt;Zengliangjun: /* About some methods: */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;I tried three methods.&lt;br /&gt;
= About string cache:= &lt;br /&gt;
Sometimes cache the struct &amp;#039;rtl_uString&amp;#039;  in a hash object. &lt;br /&gt;
&lt;br /&gt;
That will add the cost like &amp;#039;internRelease&amp;#039;,&lt;br /&gt;
&amp;#039;rtl_ustring_intern_internal&amp;#039;  when add a &amp;#039;rtl_uString&amp;#039; and a &amp;#039;rtl_uString&amp;#039;  refCount is &amp;#039;0&amp;#039;. &lt;br /&gt;
&lt;br /&gt;
I think it&amp;#039;s purpose is reducing memory cost( right or no). &lt;br /&gt;
&lt;br /&gt;
We can don&amp;#039;t use the cache to improver performance.&lt;br /&gt;
&lt;br /&gt;
= About some methods:= &lt;br /&gt;
Calculate the &amp;#039;rtl_uString&amp;#039;/&amp;#039;rtl_String&amp;#039; hashCode and compare the &amp;#039;rtl_uString&amp;#039;/&amp;#039;rtl_String&amp;#039;, &lt;br /&gt;
that is one by one. So many &amp;#039;sal_Cahr&amp;#039;/&amp;#039;sal_Unicode&amp;#039; and many operator times. &lt;br /&gt;
&lt;br /&gt;
The &amp;#039;sal_Cahr&amp;#039;/&amp;#039;sal_Unicode&amp;#039; and &amp;#039;sal_Int32&amp;#039; are the same data type. &lt;br /&gt;
&lt;br /&gt;
We can operator the &amp;#039;sal_Cahr&amp;#039;/&amp;#039;sal_Unicode&amp;#039; like operator &amp;#039;sal_Int32&amp;#039;, and one &amp;#039;sal_Int32&amp;#039; is 4/2 &amp;#039;sal_Cahr&amp;#039;/&amp;#039;sal_Unicode&amp;#039; ;that will reduce the operator times. &lt;br /&gt;
&lt;br /&gt;
As :&lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
sal_Int32 SAL_CALL IMPL_RTL_STRNAME( hashCode_WithLength )&lt;br /&gt;
( const IMPL_RTL_STRCODE* pStr, sal_Int32 nLen )&lt;br /&gt;
{&lt;br /&gt;
    static sal_Int32 _count = sizeof(sal_Int32)/sizeof(IMPL_RTL_STRCODE);&lt;br /&gt;
    sal_Int32 h = nLen;&lt;br /&gt;
    while ( nLen &amp;gt; 0 )&lt;br /&gt;
    {&lt;br /&gt;
        if( nLen &amp;gt; _count )&lt;br /&gt;
        {&lt;br /&gt;
            h +=  (*((sal_Int32*)(void *)pStr ))*37;&lt;br /&gt;
            pStr+= _count;&lt;br /&gt;
            nLen-= _count;&lt;br /&gt;
        }else&lt;br /&gt;
        {&lt;br /&gt;
            h = (h)*37 + IMPL_RTL_USTRCODE( *pStr );&lt;br /&gt;
            pStr++;&lt;br /&gt;
            nLen--;&lt;br /&gt;
        }&lt;br /&gt;
    }   &lt;br /&gt;
    return h;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= About string struct design:= &lt;br /&gt;
Now the struct has three members: &amp;#039;refCount&amp;#039;,  &amp;#039;length&amp;#039;,  &amp;#039;buffer&amp;#039;. &lt;br /&gt;
&lt;br /&gt;
Compare and calculate hash value for string that is frequent . &lt;br /&gt;
&lt;br /&gt;
We can add a field it cache the string&amp;#039;s hash value. &lt;br /&gt;
&lt;br /&gt;
Some times Compare or calculate hash value; these will compare the cache value or  return the cache value directly. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;I &amp;#039;d tried the three methods; it is not particularly evident from the time comparison.&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Performance]]&lt;/div&gt;</summary>
		<author><name>Zengliangjun</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=Performance/Improver_performance_about_string&amp;diff=158180</id>
		<title>Performance/Improver performance about string</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=Performance/Improver_performance_about_string&amp;diff=158180"/>
		<updated>2010-03-02T03:58:59Z</updated>

		<summary type="html">&lt;p&gt;Zengliangjun: Created page with &amp;#039;I tried three methods. = About string cache:=  Sometimes cache the struct &amp;#039;rtl_uString&amp;#039;  in a hash object.   That will add the cost like &amp;#039;internRelease&amp;#039;, &amp;#039;rtl_ustring_intern_inte…&amp;#039;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;I tried three methods.&lt;br /&gt;
= About string cache:= &lt;br /&gt;
Sometimes cache the struct &amp;#039;rtl_uString&amp;#039;  in a hash object. &lt;br /&gt;
&lt;br /&gt;
That will add the cost like &amp;#039;internRelease&amp;#039;,&lt;br /&gt;
&amp;#039;rtl_ustring_intern_internal&amp;#039;  when add a &amp;#039;rtl_uString&amp;#039; and a &amp;#039;rtl_uString&amp;#039;  refCount is &amp;#039;0&amp;#039;. &lt;br /&gt;
&lt;br /&gt;
I think it&amp;#039;s purpose is reducing memory cost( right or no). &lt;br /&gt;
&lt;br /&gt;
We can don&amp;#039;t use the cache to improver performance.&lt;br /&gt;
&lt;br /&gt;
= About some methods:= &lt;br /&gt;
Calculate the &amp;#039;rtl_uString&amp;#039;/&amp;#039;rtl_String&amp;#039; hashCode and compare the &amp;#039;rtl_uString&amp;#039;/&amp;#039;rtl_String&amp;#039;, &lt;br /&gt;
that is one by one. So many &amp;#039;sal_Cahr&amp;#039;/&amp;#039;sal_Unicode&amp;#039; and many operator times. &lt;br /&gt;
&lt;br /&gt;
The &amp;#039;sal_Cahr&amp;#039;/&amp;#039;sal_Unicode&amp;#039; and &amp;#039;sal_Int32&amp;#039; are the same data type. &lt;br /&gt;
&lt;br /&gt;
We can operator the &amp;#039;sal_Cahr&amp;#039;/&amp;#039;sal_Unicode&amp;#039; like operator &amp;#039;sal_Int32&amp;#039;, and one &amp;#039;sal_Int32&amp;#039; is 4/2 &amp;#039;sal_Cahr&amp;#039;/&amp;#039;sal_Unicode&amp;#039; ;that will reduce the operator times. &lt;br /&gt;
&lt;br /&gt;
As :&lt;br /&gt;
&lt;br /&gt;
 sal_Int32 SAL_CALL IMPL_RTL_STRNAME( hashCode_WithLength )&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;( const IMPL_RTL_STRCODE* pStr, sal_Int32 nLen )&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;{&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     &amp;lt;nowiki&amp;gt;static sal_Int32 _count = sizeof(sal_Int32)/sizeof(IMPL_RTL_STRCODE);&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
      &amp;lt;nowiki&amp;gt;sal_Int32 h = nLen;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
      &amp;lt;nowiki&amp;gt;while ( nLen &amp;gt; 0 )&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
      &amp;lt;nowiki&amp;gt;{&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
          &amp;lt;nowiki&amp;gt;if( nLen &amp;gt; _count )&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
          &amp;lt;nowiki&amp;gt;{&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
              &amp;lt;nowiki&amp;gt;h +=  (*((sal_Int32*)(void *)pStr ))*37;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
              &amp;lt;nowiki&amp;gt;pStr+= _count;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
              &amp;lt;nowiki&amp;gt;nLen-= _count;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
          &amp;lt;nowiki&amp;gt;}else&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
          &amp;lt;nowiki&amp;gt;{&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
              &amp;lt;nowiki&amp;gt;h = (h)*39 + IMPL_RTL_USTRCODE( *pStr );&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
              &amp;lt;nowiki&amp;gt;pStr++;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
              &amp;lt;nowiki&amp;gt;nLen--;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
          &amp;lt;nowiki&amp;gt;}&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
      &amp;lt;nowiki&amp;gt;}&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
      &amp;lt;nowiki&amp;gt;return h;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
= About string struct design:= &lt;br /&gt;
Now the struct has three members: &amp;#039;refCount&amp;#039;,  &amp;#039;length&amp;#039;,  &amp;#039;buffer&amp;#039;. &lt;br /&gt;
&lt;br /&gt;
Compare and calculate hash value for string that is frequent . &lt;br /&gt;
&lt;br /&gt;
We can add a field it cache the string&amp;#039;s hash value. &lt;br /&gt;
&lt;br /&gt;
Some times Compare or calculate hash value; these will compare the cache value or  return the cache value directly. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;I &amp;#039;d tried the three methods; it is not particularly evident from the time comparison.&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Performance]]&lt;/div&gt;</summary>
		<author><name>Zengliangjun</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=Performance/load_performance_analysis&amp;diff=152067</id>
		<title>Performance/load performance analysis</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=Performance/load_performance_analysis&amp;diff=152067"/>
		<updated>2009-12-08T05:14:31Z</updated>

		<summary type="html">&lt;p&gt;Zengliangjun: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= A group of test data =&lt;br /&gt;
== Interesting contrast analysis data from SAX parser processing ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;7&amp;quot; | &amp;lt;center&amp;gt;&amp;#039;&amp;#039;&amp;#039;Start OOo writer, read a document which has a 3.9 MB &amp;quot;content.xml&amp;quot; &amp;#039;&amp;#039;&amp;#039;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| ODF handler&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 1&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 2&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 3&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 4&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 5&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| End&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;12759&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;11805&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;13233&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;11312&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;13279&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Start&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;6230&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;5245&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;6758&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;5378&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;6541&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;6529&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;6560&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;6475&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5934&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;6738&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;6447.2&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| End&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;31305&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;36262&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;30083&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;28452&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;28584&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Start&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;24852&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;30694&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;23611&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;22018&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;22148&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;6453&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5568&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;6472&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;6434&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;6436&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;6272.6&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;7&amp;quot; | &amp;lt;center&amp;gt;&amp;#039;&amp;#039;&amp;#039;A simple application it implement a empty XdocumentHandler read the sample &amp;quot;content.xml&amp;quot; &amp;#039;&amp;#039;&amp;#039;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Empty handler&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 1&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 2&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 3&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 4&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 5&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| End&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;354&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;362&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;355&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;370&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;312&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Start&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;30&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;30&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;29&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;30&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;24&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;324&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;332&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;326&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;340&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;288&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;322&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| End&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;635&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;644&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;633&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;651&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;588&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Start&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;354&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;362&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;355&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;370&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;312&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;281&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;282&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;278&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;281&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;276&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;279.6&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;The first “start – end” contain load library cost ，the second “start – end” do not contain。&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
All test result are warm .&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;We can find the OOo processing more cost than empty XdocumentHandler。&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
== Interesting contrast analysis data from Dual-core processing ==&lt;br /&gt;
The test with 912 xml files ( total size 44.2 MB )&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;7&amp;quot; | &amp;lt;center&amp;gt;&amp;#039;&amp;#039;&amp;#039;A simple application it implement a empty XdocumentHandler , use UCB and single thread process these files.&amp;#039;&amp;#039;&amp;#039;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Single thread&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 1&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 2&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 3&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 4&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 5&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| End&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;003604&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;003549&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;003500&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;003538&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;003492&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Start&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;000029&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;000029&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;000029&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;000023&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;000029&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;3575&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;3520&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;3471&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;3515&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;3463&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;3508.8&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| End&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;007076&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;006957&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;006924&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;007025&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;006897&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Start&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;003604&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;003550&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;003500&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;003538&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;003492&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;3472&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;3407&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;3424&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;3487&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;3405&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;3439&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;7&amp;quot; | &amp;lt;center&amp;gt;&amp;#039;&amp;#039;&amp;#039;A simple application it implement a empty XdocumentHandler , use UCB and one file one thread process these files.&amp;#039;&amp;#039;&amp;#039;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;center&amp;gt;&amp;#039;&amp;#039;&amp;#039;one file one thread&amp;#039;&amp;#039;&amp;#039;&amp;lt;/center&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 1&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 2&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 3&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 4&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 5&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| End&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;002696&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;002763&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;002560&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;002827&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;002133&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Start&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;000018&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;000026&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;000028&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;000030&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;000033&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;2678&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;2737&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;2532&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;2797&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;2100&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;2568.8&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| End&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005318&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005471&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005224&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005174&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;004816&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Start&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;002696&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;002764&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;002560&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;002827&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;002133&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;2622&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;2707&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;2664&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;2347&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;2683&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;2604.6&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;7&amp;quot; | &amp;lt;center&amp;gt;&amp;#039;&amp;#039;&amp;#039;A simple application it implement a empty XdocumentHandler , use UCB and two thread process these files.&amp;#039;&amp;#039;&amp;#039;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Two thread&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 1&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 2&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 3&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 4&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 5&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| End&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;002314&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;002332&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;002356&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;002377&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;002411&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Start&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;000027&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;000029&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;000029&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;000030&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;000030&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;2287&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;2303&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;2327&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;2347&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;2381&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;2329&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| End&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;004568&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;004611&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;004622&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;004639&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;004731&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Start&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;002314&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;002332&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;002356&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;002377&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;002411&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;2254&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;2279&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;2266&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;2262&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;2320&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;2276.2&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
== Interesting contrast analysis data from Mononuclear processing ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;7&amp;quot; | &amp;lt;center&amp;gt;&amp;#039;&amp;#039;&amp;#039;A simple application it implement a empty XdocumentHandler , use UCB and single thread process these files.&amp;#039;&amp;#039;&amp;#039;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Single thread&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 1&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 2&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 3&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 4&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 5&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| End&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005062&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005531&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005516&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005062&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005110&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Start&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;000062&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;000062&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;000047&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;000062&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;000047&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5000&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5469&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5469&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5000&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5063&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;5200.2&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| End&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;010016&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;010703&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;010469&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;010062&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;010078&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Start&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005062&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005531&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005516&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005062&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005110&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;4954&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5172&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;4953&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5000&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;4968&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;5009.4&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;7&amp;quot; | &amp;lt;center&amp;gt;&amp;#039;&amp;#039;&amp;#039;A simple application it implement a empty XdocumentHandler , use UCB and one file one thread process these files.&amp;#039;&amp;#039;&amp;#039;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;center&amp;gt;&amp;#039;&amp;#039;&amp;#039;one file one thread&amp;#039;&amp;#039;&amp;#039;&amp;lt;/center&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 1&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 2&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 3&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 4&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 5&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| End&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005391&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005391&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005422&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005797&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005516&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Start&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;000063&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;000047&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;000047&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;000063&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;000063&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5328&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5344&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5375&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5734&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5453&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;5446.8&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| End&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;010719&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;010672&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;010703&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;011453&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;010797&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Start&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005391&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005391&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005422&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005797&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005516&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5328&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5381&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5281&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5656&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5281&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;5385.4&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;7&amp;quot; | &amp;lt;center&amp;gt;&amp;#039;&amp;#039;&amp;#039;A simple application it implement a empty XdocumentHandler , use UCB and two thread process these files.&amp;#039;&amp;#039;&amp;#039;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Two thread&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 1&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 2&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 3&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 4&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 5&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| End&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005110&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005062&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005516&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005531&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005062&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Start&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;000047&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;000062&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;000047&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;000062&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;000062&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5063&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5000&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5469&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5469&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5000&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;5200&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| End&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;010078&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;010062&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;010469&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;010703&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;010016&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Start&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005110&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005062&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005516&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005531&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005062&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;4968&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5000&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;4953&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5172&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;4954&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;5009.4&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
= Overview =&lt;br /&gt;
== Through the first group data we can get a conclusion: ==&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039; As load odf, OOo process that is great proportion .&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
== Through the late two sets data we can get the conclusions: ==&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039; As single-core, one task divide into multiple small tasks；these are same cost, processing with single thread, one task one thread and two thread.( one task one thread performance relatively low) &amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039; As dual-core, one task divide into multiple small tasks；that is close to 0.7-0.8 compared one task one thread, that is close to 0.66 compared two threads process; to single thread. &amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
= How to do =&lt;br /&gt;
== How can we improve ODF loading performance.==&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039; As multi-core cpu, Can we split “content.xml” processing to some small tasks; process with multi-thread and merger the result. &amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039; As Single-core, Can we split “content.xml” processing to some small tasks; asynchronous processing.&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;* Now, we don&amp;#039;t discuss the xml parser. &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== How can we split “content.xml” processing to some small tasks: ==&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039; Split “content.xml” content. &amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039; Colloect the result with sax parser, and Split the result &amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
= Description =&lt;br /&gt;
== Split “content.xml” content  ==&lt;br /&gt;
Change the document structure, complex nodules defined as a reference link to a single file,the main file contains only simple structure.&lt;br /&gt;
&lt;br /&gt;
It will produce the ODF layout:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;content.xml&lt;br /&gt;
complex/fragment1.xml&lt;br /&gt;
       /fragment2.xml&lt;br /&gt;
       /fragment3.xml&lt;br /&gt;
       /fragment4.xml&lt;br /&gt;
…&amp;lt;/nowiki&amp;gt; &lt;br /&gt;
&lt;br /&gt;
And “content.xml” will be:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;…&lt;br /&gt;
 &amp;lt;table:table xlink:href= “complex/fragment1.xml” /&amp;gt;&lt;br /&gt;
…&amp;lt;/nowiki&amp;gt; &lt;br /&gt;
&lt;br /&gt;
* I think it will produce the same performance optimization when save documentation, this way.&lt;br /&gt;
&lt;br /&gt;
== Colloect the result with sax parser, and Split that  ==&lt;br /&gt;
From the above test data, SAX process with relatively less cost itself. We can colloect SAX parser result, and split it to multi part.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;7&amp;quot; | &amp;lt;center&amp;gt;A simple application it implement a XdocumentHandler that colloect the SAX parser result , use UCB read thest files&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;center&amp;gt;Colloect the SAX parser result&amp;lt;/center&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 1&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 2&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 3&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 4&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 5&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| End&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005706&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005510&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005200&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005824&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005527&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Start&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;000029&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;000019&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;000019&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;000012&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;000011&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5677&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5491&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5181&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5812&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5516&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;5695.4&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| End&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;010814&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;010685&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;010297&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;010950&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;010794&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Start&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005706&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005510&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005200&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005824&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005527&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5108&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5175&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5097&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5126&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5267&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;5154.6&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;7&amp;quot; | &amp;lt;center&amp;gt;&amp;#039;&amp;#039;&amp;#039;A simple application it implement a empty XdocumentHandler , use UCB and single thread process these files.&amp;#039;&amp;#039;&amp;#039;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Empty handler&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 1&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 2&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 3&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 4&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 5&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| End&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;003788&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;003763&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;003908&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;004044&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;003702&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Start&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;000015&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;000011&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;000013&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;000014&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;000016&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;3773&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;3752&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;3895&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;4030&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;3686&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;3821.2&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| End&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;008330&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;007444&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;007836&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;007776&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;007465&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Start&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;003788&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;003764&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;003908&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;004044&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;003703&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;3542&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;3680&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;3924&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;3732&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;3762&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;3728&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
We can see it is less cost that colloect the SAX parser result. So we can split that throught some rules and multi-thread to process .&lt;br /&gt;
&lt;br /&gt;
== Implement Description ==&lt;br /&gt;
It has two policies which split processing “content.xml”task to some small tasks：&lt;br /&gt;
&lt;br /&gt;
a) Split “content.xml”to many sub files.&lt;br /&gt;
&lt;br /&gt;
b) Colloect the result(attribute &amp;amp; content ) from sax parser, and split the result to many parts in some rules.&lt;br /&gt;
&lt;br /&gt;
 struct State&lt;br /&gt;
 {&lt;br /&gt;
     rtl_uString* mp_elementName;                // current element tag name can replace to one flag&lt;br /&gt;
     xml::sax::XAttributeList* mp_attributes;   // current element&amp;#039;s attributes&lt;br /&gt;
     rtl_uString* mp_elementContent;            // current element&amp;#039;s content&lt;br /&gt;
&lt;br /&gt;
     sal_uInt32 m_local;                        // It&amp;#039;s position at vector&lt;br /&gt;
     sal_uInt32 m_distance;                        // It&amp;#039;s distance from parent element&lt;br /&gt;
     sal_uInt32 m_count;                        // It&amp;#039;s count of all sub elements &lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;typedef std::vector&amp;lt; State* &amp;gt; StateVectors;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
From compared above multi-thread data, situation single-core / multi-core increase performance is different.&lt;br /&gt;
&lt;br /&gt;
So I think it can consider asynchronous processing as single-core, it can consider parallel processing as multi-core.&lt;br /&gt;
&lt;br /&gt;
It is 2 policies X 2 situations processing description( Of couse it is my imagines )：&lt;br /&gt;
&lt;br /&gt;
=== Single Core + Many Fragments Asynchronism Process  ===&lt;br /&gt;
[[Image:Single_Core_%2B_Many_Fragments_Asynchronism_Process.PNG]]&lt;br /&gt;
=== Single Core + split SAX result Asynchronism Process ===&lt;br /&gt;
[[Image:Single_Core_%2B_split_SAX_result_Asynchronism_Process.PNG]]&lt;br /&gt;
&lt;br /&gt;
=== Multi Core + Many fragments Parallel Process ===&lt;br /&gt;
[[Image:Multi_Core_%2B_Many_fragments_Parallel_Process.PNG]]&lt;br /&gt;
=== Multi-Core + split SAX result Parallel Process ===&lt;br /&gt;
[[Image:Multi_Core_%2B_split_SAX_result_Parallel_Process.PNG]]&lt;br /&gt;
&lt;br /&gt;
== Key points ==&lt;br /&gt;
=== The collected information segmentation algorithm ===&lt;br /&gt;
=== Now for OOo process is not very clear, do n&amp;#039;t know whether be expected. Waits further research ===&lt;br /&gt;
= Appendix =&lt;br /&gt;
== Here is simple test, with no other considerations, just to test the feasibility of the technology. ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;7&amp;quot; | &amp;lt;center&amp;gt;&amp;#039;&amp;#039;&amp;#039;A simple application it implement a XdocumentHandler that colloect the SAX parser result , use UCB read thest files&amp;#039;&amp;#039;&amp;#039;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;center&amp;gt;Colloect the SAX parser result&amp;lt;/center&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 1&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 2&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 3&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 4&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 5&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| End&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005560&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005563&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005551&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005791&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005558&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Start&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;000033&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;000029&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;000030&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;000030&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;000023&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5527&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5534&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5521&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5761&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5535&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;5575.6&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| End&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;010952&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;011093&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;011069&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;011268&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;010972&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Start&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005560&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005563&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005551&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005791&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005558&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5392&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5530&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5518&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5477&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5414&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;5466.2&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;7&amp;quot; | &amp;lt;center&amp;gt;&amp;#039;&amp;#039;&amp;#039;A simple application it implement a XdocumentHandler that colloect the SAX parser result , use UCB read thest files, and one thread process one SAX parser result.&amp;#039;&amp;#039;&amp;#039;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 1&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 2&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 3&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 4&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 5&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| End&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;028326&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;028438&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;028115&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;27835&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;28054&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Start&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;000035&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;000035&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;000030&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;30&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;20&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;28291&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;28403&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;28085&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;27805&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;28034&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;28123.6&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| End&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;055763&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;056048&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;056294&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;056474&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;056538&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Start&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;028326&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;028438&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;28115&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;027835&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;028054&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;27437&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;27610&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;28179&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;28639&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;28484&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;28069.8&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
== A group of large data test ==&lt;br /&gt;
=== OOo calc “content.xml” 35.1 MB / 3.8M ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;7&amp;quot; | &amp;lt;center&amp;gt;&amp;#039;&amp;#039;&amp;#039;OOo reader “content.xml” &amp;#039;&amp;#039;&amp;#039;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| ODF handler&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 1&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 2&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 3&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 4&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 5&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| End&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;38220&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;37340&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;37140&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;66316&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;35378&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Start&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;6559&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;6292&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;7014&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;38431&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;6513&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;31661&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;31048&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;30126&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;27885&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;28865&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;29917&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| End&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;79549&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;82462&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;81397&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;107576&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;873537&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Start&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;47461&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;49710&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;50479&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;78099&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;844944&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;32088&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;32752&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;30918&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;29477&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;28593&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;30765.6&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;7&amp;quot; | &amp;lt;center&amp;gt;&amp;#039;&amp;#039;&amp;#039;“XdocumentHandler” empty implement reader “content.xml” &amp;#039;&amp;#039;&amp;#039;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Empty handler&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 1&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 2&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 3&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 4&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 5&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| End&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;2082&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;2178&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;2118&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;2106&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;2082&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Start&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;16&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;16&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;13&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;15&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;14&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;2066&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;2162&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;2105&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;2091&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;2068&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;2098.4&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| End&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;4070&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;4752&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;4106&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;4088&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;4294&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Start&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;2082&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;2178&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;2118&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;2106&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;2082&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;1988&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;2574&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;1988&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;1982&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;2212&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;2148.8&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
=== OOo writer “content.xml” 62.6 MB / 2.0M ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;7&amp;quot; | &amp;lt;center&amp;gt;&amp;#039;&amp;#039;&amp;#039;OOo reader “content.xml” &amp;#039;&amp;#039;&amp;#039;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| ODF handler&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 1&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 2&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 3&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 4&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 5&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| End&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;108876&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;108729&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;108997&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;108901&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;110140&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Start&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;6201&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;6060&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;6240&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;7029&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;8415&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;102675&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;102669&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;102757&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;101872&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;101725&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;102339.6&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| End&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;229982&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;228416&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;235011&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;234573&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;233124&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Start&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;126660&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;125567&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;132174&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;132292&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;130810&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;103322&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;102849&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;102837&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;102281&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;102314&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;102720.6&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;7&amp;quot; | &amp;lt;center&amp;gt;&amp;#039;&amp;#039;&amp;#039;“XdocumentHandler” empty implement reader “content.xml” &amp;#039;&amp;#039;&amp;#039;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Empty handler&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 1&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 2&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 3&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 4&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 5&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| End&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;4825&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;5595&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;5546&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;5658&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;6072&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Start&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;20&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;59&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;12&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;23&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;629&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;4805&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5536&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5534&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5635&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5443&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;5390.6&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| End&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;9899&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;11815&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;11280&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;11300&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;11394&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Start&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;4825&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;5595&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;5546&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;5658&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;6072&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5074&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;6220&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5734&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5642&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5322&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;5598.4&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Performance]]&lt;/div&gt;</summary>
		<author><name>Zengliangjun</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=Performance/load_performance_analysis&amp;diff=152063</id>
		<title>Performance/load performance analysis</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=Performance/load_performance_analysis&amp;diff=152063"/>
		<updated>2009-12-08T04:17:01Z</updated>

		<summary type="html">&lt;p&gt;Zengliangjun: /* Split “content.xml” content */  (checkpoint save)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= A group of test data =&lt;br /&gt;
== Interesting contrast analysis data from SAX parser processing ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;7&amp;quot; | &amp;lt;center&amp;gt;&amp;#039;&amp;#039;&amp;#039;Start OOo writer, read a document which has a 3.9 MB &amp;quot;content.xml&amp;quot; &amp;#039;&amp;#039;&amp;#039;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| ODF handler&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 1&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 2&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 3&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 4&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 5&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| End&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;12759&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;11805&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;13233&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;11312&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;13279&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Start&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;6230&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;5245&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;6758&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;5378&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;6541&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;6529&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;6560&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;6475&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5934&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;6738&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;6447.2&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| End&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;31305&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;36262&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;30083&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;28452&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;28584&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Start&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;24852&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;30694&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;23611&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;22018&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;22148&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;6453&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5568&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;6472&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;6434&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;6436&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;6272.6&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;7&amp;quot; | &amp;lt;center&amp;gt;&amp;#039;&amp;#039;&amp;#039;A simple application it implement a empty XdocumentHandler read the sample &amp;quot;content.xml&amp;quot; &amp;#039;&amp;#039;&amp;#039;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Empty handler&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 1&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 2&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 3&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 4&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 5&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| End&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;354&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;362&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;355&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;370&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;312&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Start&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;30&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;30&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;29&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;30&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;24&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;324&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;332&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;326&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;340&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;288&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;322&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| End&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;635&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;644&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;633&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;651&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;588&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Start&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;354&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;362&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;355&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;370&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;312&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;281&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;282&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;278&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;281&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;276&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;279.6&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;The first “start – end” contain load library cost ，the second “start – end” do not contain。&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
All test result are warm .&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;We can find the OOo processing more cost than empty XdocumentHandler。&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
== Interesting contrast analysis data from Dual-core processing ==&lt;br /&gt;
The test with 912 xml files ( total size 44.2 MB )&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;7&amp;quot; | &amp;lt;center&amp;gt;&amp;#039;&amp;#039;&amp;#039;A simple application it implement a empty XdocumentHandler , use UCB and single thread process these files.&amp;#039;&amp;#039;&amp;#039;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Single thread&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 1&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 2&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 3&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 4&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 5&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| End&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;003604&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;003549&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;003500&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;003538&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;003492&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Start&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;000029&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;000029&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;000029&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;000023&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;000029&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;3575&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;3520&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;3471&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;3515&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;3463&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;3508.8&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| End&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;007076&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;006957&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;006924&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;007025&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;006897&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Start&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;003604&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;003550&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;003500&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;003538&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;003492&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;3472&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;3407&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;3424&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;3487&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;3405&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;3439&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;7&amp;quot; | &amp;lt;center&amp;gt;&amp;#039;&amp;#039;&amp;#039;A simple application it implement a empty XdocumentHandler , use UCB and one file one thread process these files.&amp;#039;&amp;#039;&amp;#039;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;center&amp;gt;&amp;#039;&amp;#039;&amp;#039;one file one thread&amp;#039;&amp;#039;&amp;#039;&amp;lt;/center&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 1&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 2&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 3&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 4&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 5&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| End&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;002696&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;002763&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;002560&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;002827&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;002133&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Start&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;000018&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;000026&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;000028&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;000030&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;000033&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;2678&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;2737&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;2532&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;2797&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;2100&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;2568.8&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| End&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005318&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005471&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005224&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005174&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;004816&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Start&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;002696&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;002764&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;002560&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;002827&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;002133&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;2622&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;2707&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;2664&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;2347&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;2683&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;2604.6&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;7&amp;quot; | &amp;lt;center&amp;gt;&amp;#039;&amp;#039;&amp;#039;A simple application it implement a empty XdocumentHandler , use UCB and two thread process these files.&amp;#039;&amp;#039;&amp;#039;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Two thread&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 1&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 2&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 3&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 4&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 5&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| End&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;002314&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;002332&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;002356&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;002377&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;002411&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Start&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;000027&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;000029&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;000029&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;000030&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;000030&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;2287&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;2303&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;2327&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;2347&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;2381&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;2329&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| End&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;004568&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;004611&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;004622&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;004639&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;004731&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Start&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;002314&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;002332&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;002356&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;002377&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;002411&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;2254&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;2279&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;2266&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;2262&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;2320&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;2276.2&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
== Interesting contrast analysis data from Mononuclear processing ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;7&amp;quot; | &amp;lt;center&amp;gt;&amp;#039;&amp;#039;&amp;#039;A simple application it implement a empty XdocumentHandler , use UCB and single thread process these files.&amp;#039;&amp;#039;&amp;#039;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Single thread&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 1&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 2&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 3&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 4&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 5&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| End&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005062&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005531&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005516&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005062&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005110&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Start&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;000062&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;000062&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;000047&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;000062&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;000047&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5000&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5469&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5469&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5000&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5063&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;5200.2&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| End&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;010016&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;010703&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;010469&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;010062&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;010078&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Start&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005062&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005531&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005516&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005062&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005110&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;4954&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5172&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;4953&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5000&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;4968&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;5009.4&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;7&amp;quot; | &amp;lt;center&amp;gt;&amp;#039;&amp;#039;&amp;#039;A simple application it implement a empty XdocumentHandler , use UCB and one file one thread process these files.&amp;#039;&amp;#039;&amp;#039;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;center&amp;gt;&amp;#039;&amp;#039;&amp;#039;one file one thread&amp;#039;&amp;#039;&amp;#039;&amp;lt;/center&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 1&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 2&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 3&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 4&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 5&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| End&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005391&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005391&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005422&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005797&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005516&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Start&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;000063&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;000047&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;000047&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;000063&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;000063&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5328&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5344&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5375&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5734&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5453&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;5446.8&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| End&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;010719&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;010672&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;010703&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;011453&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;010797&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Start&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005391&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005391&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005422&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005797&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005516&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5328&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5381&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5281&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5656&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5281&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;5385.4&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;7&amp;quot; | &amp;lt;center&amp;gt;&amp;#039;&amp;#039;&amp;#039;A simple application it implement a empty XdocumentHandler , use UCB and two thread process these files.&amp;#039;&amp;#039;&amp;#039;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Two thread&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 1&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 2&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 3&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 4&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 5&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| End&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005110&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005062&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005516&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005531&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005062&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Start&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;000047&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;000062&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;000047&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;000062&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;000062&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5063&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5000&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5469&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5469&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5000&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;5200&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| End&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;010078&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;010062&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;010469&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;010703&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;010016&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Start&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005110&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005062&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005516&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005531&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005062&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;4968&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5000&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;4953&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5172&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;4954&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;5009.4&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
= Overview =&lt;br /&gt;
== Through the first group data we can get a conclusion: ==&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039; As load odf, it is great proportion from OOo process.&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
== Through the late two sets data we can get the conclusions: ==&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039; As single-core, one task divide into multiple small tasks；these are same cost, processing with single thread, one task one thread and two thread.( one task one thread performance relatively low) &amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039; As dual-core, one task divide into multiple small tasks；that is close to 0.7-0.8 compared one task one thread, that is close to 0.66 compared two threads process; to single thread. &amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
= How to do =&lt;br /&gt;
== How can we improve ODF loading performance.==&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039; As multi-core cpu, Can we split “content.xml” processing to some small tasks; process with multi-thread and merger the result. &amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039; As Single-core, Can we split “content.xml” processing to some small tasks; asynchronous processing.&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;* Now, we don&amp;#039;t discuss the xml parser. &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== How can we split “content.xml” processing to some small tasks: ==&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039; Split “content.xml” content. &amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039; Colloect the result with sax parser, and Split the result &amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
= Description =&lt;br /&gt;
== Split “content.xml” content  ==&lt;br /&gt;
Change the document structure, complex nodules defined as a reference link to a single file,the main file contains only simple structure.&lt;br /&gt;
&lt;br /&gt;
It will produce the ODF layout :&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;content.xml&lt;br /&gt;
complex/fragment1.xml&lt;br /&gt;
       /fragment2.xml&lt;br /&gt;
       /fragment3.xml&lt;br /&gt;
       /fragment4.xml&lt;br /&gt;
…&amp;lt;/nowiki&amp;gt; &lt;br /&gt;
&lt;br /&gt;
And “content.xml” will be :&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;…&lt;br /&gt;
 &amp;lt;table:table xlink:href= “complex/fragment1.xml” /&amp;gt;&lt;br /&gt;
…&amp;lt;/nowiki&amp;gt; &lt;br /&gt;
&lt;br /&gt;
* I think it will produce the same performance optimization when save documentation, this way.&lt;br /&gt;
&lt;br /&gt;
== Colloect the result with sax parser, and Split that  ==&lt;br /&gt;
From the above test data, SAX process with relatively less cost itself. We can colloect SAX parser result, and split it to multi part.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;7&amp;quot; | &amp;lt;center&amp;gt;A simple application it implement a XdocumentHandler that colloect the SAX parser result , use UCB read thest files&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;center&amp;gt;Colloect the SAX parser result&amp;lt;/center&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 1&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 2&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 3&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 4&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 5&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| End&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005706&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005510&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005200&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005824&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005527&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Start&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;000029&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;000019&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;000019&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;000012&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;000011&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5677&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5491&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5181&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5812&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5516&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;5695.4&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| End&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;010814&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;010685&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;010297&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;010950&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;010794&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Start&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005706&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005510&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005200&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005824&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005527&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5108&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5175&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5097&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5126&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5267&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;5154.6&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;7&amp;quot; | &amp;lt;center&amp;gt;&amp;#039;&amp;#039;&amp;#039;A simple application it implement a empty XdocumentHandler , use UCB and single thread process these files.&amp;#039;&amp;#039;&amp;#039;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Empty handler&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 1&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 2&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 3&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 4&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 5&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| End&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;003788&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;003763&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;003908&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;004044&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;003702&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Start&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;000015&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;000011&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;000013&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;000014&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;000016&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;3773&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;3752&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;3895&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;4030&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;3686&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;3821.2&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| End&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;008330&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;007444&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;007836&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;007776&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;007465&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Start&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;003788&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;003764&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;003908&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;004044&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;003703&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;3542&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;3680&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;3924&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;3732&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;3762&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;3728&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
We can see it is less cost that colloect the SAX parser result. So we can split that throught some rules and multi-thread to process .&lt;br /&gt;
&lt;br /&gt;
== Implement Description ==&lt;br /&gt;
It has two policies which split processing “content.xml”task to some small tasks：&lt;br /&gt;
&lt;br /&gt;
a) Split “content.xml”to many sub files.&lt;br /&gt;
&lt;br /&gt;
b) Colloect the result(attribute &amp;amp; content ) from sax parser, and split the result to many parts in some rules.&lt;br /&gt;
&lt;br /&gt;
 struct State&lt;br /&gt;
 {&lt;br /&gt;
     rtl_uString* mp_elementName;                // current element tag name can replace to one flag&lt;br /&gt;
     xml::sax::XAttributeList* mp_attributes;   // current element&amp;#039;s attributes&lt;br /&gt;
     rtl_uString* mp_elementContent;            // current element&amp;#039;s content&lt;br /&gt;
&lt;br /&gt;
     sal_uInt32 m_local;                        // It&amp;#039;s position at vector&lt;br /&gt;
     sal_uInt32 m_distance;                        // It&amp;#039;s distance from parent element&lt;br /&gt;
     sal_uInt32 m_count;                        // It&amp;#039;s count of all sub elements &lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;typedef std::vector&amp;lt; State* &amp;gt; StateVectors;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
From compared above multi-thread data, situation single-core / multi-core increase performance is different.&lt;br /&gt;
&lt;br /&gt;
So I think it can consider asynchronous processing as single-core, it can consider parallel processing as multi-core.&lt;br /&gt;
&lt;br /&gt;
It is 2 policies X 2 situations processing description( Of couse it is my imagines )：&lt;br /&gt;
&lt;br /&gt;
=== Single Core + Many Fragments Asynchronism Process  ===&lt;br /&gt;
[[Image:Single_Core_%2B_Many_Fragments_Asynchronism_Process.PNG]]&lt;br /&gt;
=== Single Core + split SAX result Asynchronism Process ===&lt;br /&gt;
[[Image:Single_Core_%2B_split_SAX_result_Asynchronism_Process.PNG]]&lt;br /&gt;
&lt;br /&gt;
=== Multi Core + Many fragments Parallel Process ===&lt;br /&gt;
[[Image:Multi_Core_%2B_Many_fragments_Parallel_Process.PNG]]&lt;br /&gt;
=== Multi-Core + split SAX result Parallel Process ===&lt;br /&gt;
[[Image:Multi_Core_%2B_split_SAX_result_Parallel_Process.PNG]]&lt;br /&gt;
&lt;br /&gt;
== Key points ==&lt;br /&gt;
=== The collected information segmentation algorithm ===&lt;br /&gt;
=== Now for OOo process is not very clear, do n&amp;#039;t know whether be expected. Waits further research ===&lt;br /&gt;
= Appendix =&lt;br /&gt;
== Here is simple test, with no other considerations, just to test the feasibility of the technology. ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;7&amp;quot; | &amp;lt;center&amp;gt;&amp;#039;&amp;#039;&amp;#039;A simple application it implement a XdocumentHandler that colloect the SAX parser result , use UCB read thest files&amp;#039;&amp;#039;&amp;#039;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;center&amp;gt;Colloect the SAX parser result&amp;lt;/center&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 1&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 2&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 3&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 4&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 5&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| End&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005560&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005563&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005551&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005791&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005558&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Start&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;000033&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;000029&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;000030&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;000030&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;000023&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5527&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5534&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5521&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5761&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5535&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;5575.6&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| End&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;010952&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;011093&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;011069&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;011268&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;010972&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Start&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005560&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005563&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005551&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005791&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005558&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5392&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5530&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5518&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5477&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5414&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;5466.2&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;7&amp;quot; | &amp;lt;center&amp;gt;&amp;#039;&amp;#039;&amp;#039;A simple application it implement a XdocumentHandler that colloect the SAX parser result , use UCB read thest files, and one thread process one SAX parser result.&amp;#039;&amp;#039;&amp;#039;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 1&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 2&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 3&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 4&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 5&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| End&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;028326&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;028438&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;028115&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;27835&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;28054&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Start&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;000035&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;000035&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;000030&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;30&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;20&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;28291&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;28403&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;28085&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;27805&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;28034&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;28123.6&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| End&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;055763&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;056048&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;056294&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;056474&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;056538&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Start&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;028326&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;028438&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;28115&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;027835&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;028054&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;27437&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;27610&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;28179&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;28639&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;28484&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;28069.8&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
== A group of large data test ==&lt;br /&gt;
=== OOo calc “content.xml” 35.1 MB / 3.8M ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;7&amp;quot; | &amp;lt;center&amp;gt;&amp;#039;&amp;#039;&amp;#039;OOo reader “content.xml” &amp;#039;&amp;#039;&amp;#039;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| ODF handler&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 1&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 2&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 3&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 4&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 5&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| End&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;38220&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;37340&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;37140&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;66316&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;35378&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Start&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;6559&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;6292&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;7014&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;38431&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;6513&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;31661&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;31048&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;30126&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;27885&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;28865&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;29917&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| End&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;79549&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;82462&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;81397&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;107576&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;873537&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Start&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;47461&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;49710&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;50479&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;78099&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;844944&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;32088&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;32752&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;30918&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;29477&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;28593&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;30765.6&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;7&amp;quot; | &amp;lt;center&amp;gt;&amp;#039;&amp;#039;&amp;#039;“XdocumentHandler” empty implement reader “content.xml” &amp;#039;&amp;#039;&amp;#039;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Empty handler&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 1&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 2&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 3&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 4&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 5&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| End&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;2082&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;2178&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;2118&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;2106&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;2082&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Start&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;16&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;16&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;13&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;15&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;14&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;2066&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;2162&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;2105&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;2091&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;2068&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;2098.4&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| End&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;4070&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;4752&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;4106&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;4088&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;4294&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Start&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;2082&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;2178&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;2118&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;2106&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;2082&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;1988&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;2574&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;1988&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;1982&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;2212&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;2148.8&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
=== OOo writer “content.xml” 62.6 MB / 2.0M ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;7&amp;quot; | &amp;lt;center&amp;gt;&amp;#039;&amp;#039;&amp;#039;OOo reader “content.xml” &amp;#039;&amp;#039;&amp;#039;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| ODF handler&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 1&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 2&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 3&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 4&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 5&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| End&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;108876&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;108729&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;108997&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;108901&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;110140&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Start&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;6201&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;6060&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;6240&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;7029&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;8415&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;102675&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;102669&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;102757&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;101872&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;101725&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;102339.6&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| End&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;229982&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;228416&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;235011&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;234573&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;233124&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Start&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;126660&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;125567&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;132174&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;132292&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;130810&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;103322&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;102849&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;102837&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;102281&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;102314&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;102720.6&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;7&amp;quot; | &amp;lt;center&amp;gt;&amp;#039;&amp;#039;&amp;#039;“XdocumentHandler” empty implement reader “content.xml” &amp;#039;&amp;#039;&amp;#039;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Empty handler&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 1&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 2&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 3&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 4&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 5&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| End&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;4825&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;5595&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;5546&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;5658&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;6072&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Start&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;20&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;59&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;12&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;23&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;629&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;4805&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5536&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5534&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5635&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5443&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;5390.6&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| End&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;9899&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;11815&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;11280&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;11300&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;11394&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Start&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;4825&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;5595&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;5546&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;5658&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;6072&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5074&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;6220&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5734&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5642&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5322&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;5598.4&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Performance]]&lt;/div&gt;</summary>
		<author><name>Zengliangjun</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=Performance/load_performance_analysis&amp;diff=152062</id>
		<title>Performance/load performance analysis</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=Performance/load_performance_analysis&amp;diff=152062"/>
		<updated>2009-12-08T03:46:55Z</updated>

		<summary type="html">&lt;p&gt;Zengliangjun: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= A group of test data =&lt;br /&gt;
== Interesting contrast analysis data from SAX parser processing ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;7&amp;quot; | &amp;lt;center&amp;gt;&amp;#039;&amp;#039;&amp;#039;Start OOo writer, read a document which has a 3.9 MB &amp;quot;content.xml&amp;quot; &amp;#039;&amp;#039;&amp;#039;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| ODF handler&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 1&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 2&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 3&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 4&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 5&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| End&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;12759&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;11805&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;13233&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;11312&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;13279&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Start&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;6230&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;5245&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;6758&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;5378&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;6541&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;6529&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;6560&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;6475&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5934&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;6738&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;6447.2&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| End&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;31305&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;36262&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;30083&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;28452&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;28584&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Start&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;24852&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;30694&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;23611&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;22018&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;22148&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;6453&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5568&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;6472&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;6434&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;6436&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;6272.6&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;7&amp;quot; | &amp;lt;center&amp;gt;&amp;#039;&amp;#039;&amp;#039;A simple application it implement a empty XdocumentHandler read the sample &amp;quot;content.xml&amp;quot; &amp;#039;&amp;#039;&amp;#039;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Empty handler&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 1&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 2&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 3&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 4&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 5&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| End&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;354&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;362&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;355&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;370&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;312&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Start&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;30&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;30&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;29&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;30&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;24&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;324&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;332&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;326&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;340&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;288&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;322&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| End&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;635&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;644&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;633&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;651&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;588&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Start&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;354&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;362&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;355&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;370&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;312&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;281&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;282&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;278&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;281&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;276&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;279.6&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;The first “start – end” contain load library cost ，the second “start – end” do not contain。&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
All test result are warm .&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;We can find the OOo processing more cost than empty XdocumentHandler。&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
== Interesting contrast analysis data from Dual-core processing ==&lt;br /&gt;
The test with 912 xml files ( total size 44.2 MB )&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;7&amp;quot; | &amp;lt;center&amp;gt;&amp;#039;&amp;#039;&amp;#039;A simple application it implement a empty XdocumentHandler , use UCB and single thread process these files.&amp;#039;&amp;#039;&amp;#039;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Single thread&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 1&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 2&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 3&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 4&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 5&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| End&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;003604&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;003549&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;003500&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;003538&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;003492&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Start&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;000029&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;000029&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;000029&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;000023&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;000029&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;3575&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;3520&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;3471&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;3515&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;3463&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;3508.8&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| End&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;007076&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;006957&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;006924&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;007025&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;006897&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Start&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;003604&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;003550&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;003500&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;003538&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;003492&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;3472&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;3407&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;3424&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;3487&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;3405&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;3439&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;7&amp;quot; | &amp;lt;center&amp;gt;&amp;#039;&amp;#039;&amp;#039;A simple application it implement a empty XdocumentHandler , use UCB and one file one thread process these files.&amp;#039;&amp;#039;&amp;#039;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;center&amp;gt;&amp;#039;&amp;#039;&amp;#039;one file one thread&amp;#039;&amp;#039;&amp;#039;&amp;lt;/center&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 1&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 2&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 3&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 4&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 5&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| End&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;002696&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;002763&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;002560&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;002827&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;002133&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Start&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;000018&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;000026&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;000028&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;000030&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;000033&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;2678&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;2737&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;2532&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;2797&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;2100&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;2568.8&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| End&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005318&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005471&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005224&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005174&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;004816&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Start&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;002696&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;002764&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;002560&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;002827&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;002133&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;2622&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;2707&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;2664&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;2347&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;2683&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;2604.6&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;7&amp;quot; | &amp;lt;center&amp;gt;&amp;#039;&amp;#039;&amp;#039;A simple application it implement a empty XdocumentHandler , use UCB and two thread process these files.&amp;#039;&amp;#039;&amp;#039;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Two thread&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 1&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 2&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 3&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 4&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 5&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| End&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;002314&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;002332&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;002356&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;002377&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;002411&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Start&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;000027&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;000029&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;000029&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;000030&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;000030&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;2287&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;2303&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;2327&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;2347&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;2381&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;2329&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| End&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;004568&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;004611&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;004622&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;004639&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;004731&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Start&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;002314&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;002332&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;002356&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;002377&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;002411&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;2254&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;2279&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;2266&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;2262&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;2320&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;2276.2&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
== Interesting contrast analysis data from Mononuclear processing ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;7&amp;quot; | &amp;lt;center&amp;gt;&amp;#039;&amp;#039;&amp;#039;A simple application it implement a empty XdocumentHandler , use UCB and single thread process these files.&amp;#039;&amp;#039;&amp;#039;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Single thread&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 1&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 2&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 3&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 4&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 5&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| End&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005062&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005531&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005516&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005062&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005110&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Start&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;000062&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;000062&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;000047&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;000062&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;000047&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5000&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5469&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5469&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5000&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5063&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;5200.2&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| End&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;010016&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;010703&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;010469&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;010062&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;010078&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Start&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005062&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005531&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005516&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005062&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005110&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;4954&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5172&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;4953&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5000&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;4968&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;5009.4&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;7&amp;quot; | &amp;lt;center&amp;gt;&amp;#039;&amp;#039;&amp;#039;A simple application it implement a empty XdocumentHandler , use UCB and one file one thread process these files.&amp;#039;&amp;#039;&amp;#039;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;center&amp;gt;&amp;#039;&amp;#039;&amp;#039;one file one thread&amp;#039;&amp;#039;&amp;#039;&amp;lt;/center&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 1&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 2&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 3&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 4&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 5&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| End&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005391&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005391&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005422&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005797&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005516&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Start&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;000063&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;000047&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;000047&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;000063&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;000063&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5328&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5344&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5375&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5734&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5453&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;5446.8&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| End&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;010719&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;010672&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;010703&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;011453&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;010797&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Start&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005391&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005391&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005422&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005797&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005516&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5328&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5381&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5281&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5656&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5281&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;5385.4&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;7&amp;quot; | &amp;lt;center&amp;gt;&amp;#039;&amp;#039;&amp;#039;A simple application it implement a empty XdocumentHandler , use UCB and two thread process these files.&amp;#039;&amp;#039;&amp;#039;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Two thread&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 1&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 2&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 3&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 4&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 5&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| End&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005110&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005062&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005516&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005531&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005062&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Start&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;000047&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;000062&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;000047&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;000062&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;000062&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5063&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5000&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5469&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5469&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5000&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;5200&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| End&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;010078&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;010062&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;010469&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;010703&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;010016&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Start&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005110&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005062&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005516&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005531&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005062&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;4968&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5000&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;4953&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5172&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;4954&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;5009.4&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
= Overview =&lt;br /&gt;
== Through the first group data we can get a conclusion: ==&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039; As load odf, it is great proportion from OOo process.&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
== Through the late two sets data we can get the conclusions: ==&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039; As single-core, one task divide into multiple small tasks；these are same cost, processing with single thread, one task one thread and two thread.( one task one thread performance relatively low) &amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039; As dual-core, one task divide into multiple small tasks；that is close to 0.7-0.8 compared one task one thread, that is close to 0.66 compared two threads process; to single thread. &amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
= How to do =&lt;br /&gt;
== How can we improve ODF loading performance.==&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039; As multi-core cpu, Can we split “content.xml” processing to some small tasks; process with multi-thread and merger the result. &amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039; As Single-core, Can we split “content.xml” processing to some small tasks; asynchronous processing.&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;* Now, we don&amp;#039;t discuss the xml parser. &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== How can we split “content.xml” processing to some small tasks: ==&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039; Split “content.xml” content. &amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039; Colloect the result with sax parser, and Split the result &amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
= Description =&lt;br /&gt;
== Split “content.xml” content  ==&lt;br /&gt;
Change the document structure, complex nodules defined as a reference link to a single file,the main file contains only simple structure.&lt;br /&gt;
&lt;br /&gt;
It will produce the ODF layout :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;content.xml&lt;br /&gt;
complex/fragment1.xml&lt;br /&gt;
       /fragment2.xml&lt;br /&gt;
       /fragment3.xml&lt;br /&gt;
       /fragment4.xml&lt;br /&gt;
…&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And “content.xml” will be :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;…&lt;br /&gt;
 &amp;lt;table:table xlink:href= “complex/fragment1.xml” /&amp;gt;&lt;br /&gt;
…&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* I think it will produce the same performance optimization when save documentation, this way.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Colloect the result with sax parser, and Split that  ==&lt;br /&gt;
From the above test data, SAX process with relatively less cost itself. We can colloect SAX parser result, and split it to multi part.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;7&amp;quot; | &amp;lt;center&amp;gt;A simple application it implement a XdocumentHandler that colloect the SAX parser result , use UCB read thest files&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;center&amp;gt;Colloect the SAX parser result&amp;lt;/center&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 1&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 2&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 3&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 4&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 5&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| End&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005706&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005510&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005200&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005824&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005527&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Start&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;000029&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;000019&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;000019&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;000012&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;000011&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5677&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5491&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5181&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5812&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5516&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;5695.4&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| End&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;010814&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;010685&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;010297&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;010950&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;010794&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Start&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005706&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005510&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005200&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005824&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005527&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5108&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5175&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5097&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5126&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5267&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;5154.6&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;7&amp;quot; | &amp;lt;center&amp;gt;&amp;#039;&amp;#039;&amp;#039;A simple application it implement a empty XdocumentHandler , use UCB and single thread process these files.&amp;#039;&amp;#039;&amp;#039;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Empty handler&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 1&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 2&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 3&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 4&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 5&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| End&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;003788&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;003763&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;003908&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;004044&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;003702&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Start&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;000015&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;000011&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;000013&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;000014&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;000016&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;3773&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;3752&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;3895&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;4030&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;3686&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;3821.2&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| End&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;008330&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;007444&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;007836&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;007776&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;007465&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Start&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;003788&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;003764&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;003908&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;004044&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;003703&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;3542&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;3680&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;3924&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;3732&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;3762&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;3728&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
We can see it is less cost that colloect the SAX parser result. So we can split that throught some rules and multi-thread to process .&lt;br /&gt;
&lt;br /&gt;
== Implement Description ==&lt;br /&gt;
It has two policies which split processing “content.xml”task to some small tasks：&lt;br /&gt;
&lt;br /&gt;
a) Split “content.xml”to many sub files.&lt;br /&gt;
&lt;br /&gt;
b) Colloect the result(attribute &amp;amp; content ) from sax parser, and split the result to many parts in some rules.&lt;br /&gt;
&lt;br /&gt;
 struct State&lt;br /&gt;
 {&lt;br /&gt;
     rtl_uString* mp_elementName;                // current element tag name can replace to one flag&lt;br /&gt;
     xml::sax::XAttributeList* mp_attributes;   // current element&amp;#039;s attributes&lt;br /&gt;
     rtl_uString* mp_elementContent;            // current element&amp;#039;s content&lt;br /&gt;
&lt;br /&gt;
     sal_uInt32 m_local;                        // It&amp;#039;s position at vector&lt;br /&gt;
     sal_uInt32 m_distance;                        // It&amp;#039;s distance from parent element&lt;br /&gt;
     sal_uInt32 m_count;                        // It&amp;#039;s count of all sub elements &lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;typedef std::vector&amp;lt; State* &amp;gt; StateVectors;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
From compared above multi-thread data, situation single-core / multi-core increase performance is different.&lt;br /&gt;
&lt;br /&gt;
So I think it can consider asynchronous processing as single-core, it can consider parallel processing as multi-core.&lt;br /&gt;
&lt;br /&gt;
It is 2 policies X 2 situations processing description( Of couse it is my imagines )：&lt;br /&gt;
&lt;br /&gt;
=== Single Core + Many Fragments Asynchronism Process  ===&lt;br /&gt;
[[Image:Single_Core_%2B_Many_Fragments_Asynchronism_Process.PNG]]&lt;br /&gt;
=== Single Core + split SAX result Asynchronism Process ===&lt;br /&gt;
[[Image:Single_Core_%2B_split_SAX_result_Asynchronism_Process.PNG]]&lt;br /&gt;
&lt;br /&gt;
=== Multi Core + Many fragments Parallel Process ===&lt;br /&gt;
[[Image:Multi_Core_%2B_Many_fragments_Parallel_Process.PNG]]&lt;br /&gt;
=== Multi-Core + split SAX result Parallel Process ===&lt;br /&gt;
[[Image:Multi_Core_%2B_split_SAX_result_Parallel_Process.PNG]]&lt;br /&gt;
&lt;br /&gt;
== Key points ==&lt;br /&gt;
=== The collected information segmentation algorithm ===&lt;br /&gt;
=== Now for OOo process is not very clear, do n&amp;#039;t know whether be expected. Waits further research ===&lt;br /&gt;
= Appendix =&lt;br /&gt;
== Here is simple test, with no other considerations, just to test the feasibility of the technology. ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;7&amp;quot; | &amp;lt;center&amp;gt;&amp;#039;&amp;#039;&amp;#039;A simple application it implement a XdocumentHandler that colloect the SAX parser result , use UCB read thest files&amp;#039;&amp;#039;&amp;#039;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;center&amp;gt;Colloect the SAX parser result&amp;lt;/center&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 1&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 2&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 3&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 4&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 5&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| End&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005560&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005563&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005551&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005791&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005558&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Start&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;000033&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;000029&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;000030&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;000030&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;000023&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5527&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5534&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5521&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5761&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5535&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;5575.6&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| End&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;010952&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;011093&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;011069&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;011268&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;010972&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Start&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005560&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005563&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005551&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005791&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005558&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5392&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5530&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5518&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5477&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5414&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;5466.2&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;7&amp;quot; | &amp;lt;center&amp;gt;&amp;#039;&amp;#039;&amp;#039;A simple application it implement a XdocumentHandler that colloect the SAX parser result , use UCB read thest files, and one thread process one SAX parser result.&amp;#039;&amp;#039;&amp;#039;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 1&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 2&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 3&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 4&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 5&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| End&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;028326&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;028438&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;028115&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;27835&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;28054&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Start&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;000035&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;000035&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;000030&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;30&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;20&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;28291&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;28403&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;28085&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;27805&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;28034&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;28123.6&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| End&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;055763&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;056048&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;056294&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;056474&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;056538&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Start&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;028326&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;028438&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;28115&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;027835&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;028054&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;27437&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;27610&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;28179&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;28639&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;28484&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;28069.8&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
== A group of large data test ==&lt;br /&gt;
=== OOo calc “content.xml” 35.1 MB / 3.8M ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;7&amp;quot; | &amp;lt;center&amp;gt;&amp;#039;&amp;#039;&amp;#039;OOo reader “content.xml” &amp;#039;&amp;#039;&amp;#039;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| ODF handler&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 1&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 2&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 3&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 4&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 5&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| End&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;38220&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;37340&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;37140&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;66316&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;35378&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Start&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;6559&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;6292&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;7014&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;38431&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;6513&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;31661&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;31048&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;30126&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;27885&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;28865&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;29917&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| End&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;79549&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;82462&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;81397&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;107576&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;873537&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Start&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;47461&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;49710&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;50479&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;78099&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;844944&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;32088&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;32752&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;30918&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;29477&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;28593&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;30765.6&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;7&amp;quot; | &amp;lt;center&amp;gt;&amp;#039;&amp;#039;&amp;#039;“XdocumentHandler” empty implement reader “content.xml” &amp;#039;&amp;#039;&amp;#039;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Empty handler&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 1&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 2&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 3&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 4&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 5&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| End&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;2082&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;2178&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;2118&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;2106&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;2082&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Start&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;16&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;16&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;13&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;15&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;14&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;2066&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;2162&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;2105&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;2091&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;2068&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;2098.4&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| End&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;4070&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;4752&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;4106&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;4088&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;4294&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Start&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;2082&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;2178&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;2118&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;2106&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;2082&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;1988&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;2574&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;1988&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;1982&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;2212&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;2148.8&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
=== OOo writer “content.xml” 62.6 MB / 2.0M ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;7&amp;quot; | &amp;lt;center&amp;gt;&amp;#039;&amp;#039;&amp;#039;OOo reader “content.xml” &amp;#039;&amp;#039;&amp;#039;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| ODF handler&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 1&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 2&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 3&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 4&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 5&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| End&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;108876&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;108729&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;108997&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;108901&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;110140&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Start&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;6201&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;6060&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;6240&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;7029&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;8415&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;102675&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;102669&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;102757&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;101872&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;101725&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;102339.6&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| End&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;229982&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;228416&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;235011&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;234573&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;233124&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Start&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;126660&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;125567&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;132174&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;132292&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;130810&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;103322&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;102849&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;102837&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;102281&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;102314&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;102720.6&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;7&amp;quot; | &amp;lt;center&amp;gt;&amp;#039;&amp;#039;&amp;#039;“XdocumentHandler” empty implement reader “content.xml” &amp;#039;&amp;#039;&amp;#039;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Empty handler&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 1&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 2&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 3&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 4&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 5&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| End&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;4825&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;5595&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;5546&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;5658&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;6072&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Start&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;20&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;59&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;12&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;23&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;629&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;4805&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5536&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5534&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5635&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5443&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;5390.6&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| End&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;9899&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;11815&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;11280&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;11300&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;11394&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Start&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;4825&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;5595&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;5546&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;5658&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;6072&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5074&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;6220&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5734&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5642&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5322&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;5598.4&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Performance]]&lt;/div&gt;</summary>
		<author><name>Zengliangjun</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=Performance/load_performance_analysis&amp;diff=152061</id>
		<title>Performance/load performance analysis</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=Performance/load_performance_analysis&amp;diff=152061"/>
		<updated>2009-12-08T02:46:37Z</updated>

		<summary type="html">&lt;p&gt;Zengliangjun: /* Interesting contrast analysis data SAX parser processing */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= A group of test data =&lt;br /&gt;
== Interesting contrast analysis data from SAX parser processing ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;7&amp;quot; | &amp;lt;center&amp;gt;&amp;#039;&amp;#039;&amp;#039;Start OOo writer, read a document which has a 3.9 MB &amp;quot;content.xml&amp;quot; &amp;#039;&amp;#039;&amp;#039;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| ODF handler&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 1&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 2&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 3&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 4&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 5&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| End&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;12759&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;11805&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;13233&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;11312&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;13279&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Start&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;6230&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;5245&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;6758&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;5378&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;6541&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;6529&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;6560&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;6475&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5934&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;6738&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;6447.2&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| End&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;31305&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;36262&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;30083&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;28452&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;28584&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Start&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;24852&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;30694&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;23611&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;22018&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;22148&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;6453&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5568&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;6472&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;6434&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;6436&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;6272.6&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;7&amp;quot; | &amp;lt;center&amp;gt;&amp;#039;&amp;#039;&amp;#039;A simple application it implement a empty XdocumentHandler read the sample &amp;quot;content.xml&amp;quot; &amp;#039;&amp;#039;&amp;#039;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Empty handler&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 1&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 2&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 3&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 4&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 5&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| End&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;354&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;362&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;355&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;370&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;312&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Start&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;30&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;30&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;29&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;30&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;24&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;324&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;332&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;326&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;340&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;288&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;322&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| End&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;635&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;644&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;633&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;651&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;588&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Start&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;354&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;362&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;355&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;370&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;312&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;281&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;282&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;278&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;281&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;276&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;279.6&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;The first “start – end” contain load library cost ，the second “start – end” do not contain。&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
All test result are warm .&lt;br /&gt;
&lt;br /&gt;
We can find the OOo processing more cost than empty XdocumentHandler。&lt;br /&gt;
&lt;br /&gt;
== Interesting contrast analysis data Dual-core processing ==&lt;br /&gt;
The test with 912 xml files ( total size 44.2 MB )&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;7&amp;quot; | &amp;lt;center&amp;gt;&amp;#039;&amp;#039;&amp;#039;A simple application it implement a empty XdocumentHandler , use UCB and single thread process these files.&amp;#039;&amp;#039;&amp;#039;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Single thread&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 1&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 2&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 3&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 4&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 5&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| End&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;003604&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;003549&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;003500&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;003538&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;003492&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Start&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;000029&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;000029&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;000029&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;000023&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;000029&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;3575&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;3520&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;3471&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;3515&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;3463&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;3508.8&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| End&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;007076&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;006957&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;006924&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;007025&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;006897&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Start&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;003604&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;003550&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;003500&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;003538&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;003492&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;3472&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;3407&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;3424&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;3487&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;3405&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;3439&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;7&amp;quot; | &amp;lt;center&amp;gt;&amp;#039;&amp;#039;&amp;#039;A simple application it implement a empty XdocumentHandler , use UCB and one file one thread process these files.&amp;#039;&amp;#039;&amp;#039;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;center&amp;gt;&amp;#039;&amp;#039;&amp;#039;one file one thread&amp;#039;&amp;#039;&amp;#039;&amp;lt;/center&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 1&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 2&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 3&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 4&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 5&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| End&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;002696&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;002763&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;002560&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;002827&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;002133&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Start&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;000018&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;000026&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;000028&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;000030&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;000033&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;2678&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;2737&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;2532&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;2797&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;2100&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;2568.8&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| End&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005318&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005471&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005224&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005174&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;004816&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Start&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;002696&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;002764&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;002560&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;002827&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;002133&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;2622&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;2707&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;2664&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;2347&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;2683&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;2604.6&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;7&amp;quot; | &amp;lt;center&amp;gt;&amp;#039;&amp;#039;&amp;#039;A simple application it implement a empty XdocumentHandler , use UCB and two thread process these files.&amp;#039;&amp;#039;&amp;#039;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Two thread&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 1&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 2&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 3&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 4&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 5&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| End&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;002314&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;002332&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;002356&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;002377&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;002411&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Start&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;000027&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;000029&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;000029&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;000030&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;000030&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;2287&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;2303&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;2327&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;2347&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;2381&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;2329&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| End&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;004568&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;004611&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;004622&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;004639&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;004731&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Start&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;002314&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;002332&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;002356&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;002377&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;002411&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;2254&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;2279&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;2266&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;2262&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;2320&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;2276.2&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
== Interesting contrast analysis data Mononuclear processing ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;7&amp;quot; | &amp;lt;center&amp;gt;&amp;#039;&amp;#039;&amp;#039;A simple application it implement a empty XdocumentHandler , use UCB and single thread process these files.&amp;#039;&amp;#039;&amp;#039;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Single thread&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 1&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 2&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 3&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 4&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 5&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| End&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005062&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005531&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005516&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005062&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005110&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Start&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;000062&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;000062&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;000047&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;000062&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;000047&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5000&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5469&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5469&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5000&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5063&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;5200.2&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| End&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;010016&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;010703&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;010469&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;010062&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;010078&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Start&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005062&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005531&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005516&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005062&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005110&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;4954&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5172&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;4953&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5000&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;4968&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;5009.4&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;7&amp;quot; | &amp;lt;center&amp;gt;&amp;#039;&amp;#039;&amp;#039;A simple application it implement a empty XdocumentHandler , use UCB and one file one thread process these files.&amp;#039;&amp;#039;&amp;#039;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;center&amp;gt;&amp;#039;&amp;#039;&amp;#039;one file one thread&amp;#039;&amp;#039;&amp;#039;&amp;lt;/center&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 1&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 2&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 3&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 4&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 5&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| End&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005391&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005391&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005422&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005797&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005516&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Start&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;000063&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;000047&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;000047&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;000063&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;000063&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5328&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5344&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5375&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5734&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5453&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;5446.8&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| End&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;010719&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;010672&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;010703&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;011453&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;010797&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Start&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005391&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005391&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005422&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005797&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005516&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5328&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5381&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5281&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5656&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5281&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;5385.4&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;7&amp;quot; | &amp;lt;center&amp;gt;&amp;#039;&amp;#039;&amp;#039;A simple application it implement a empty XdocumentHandler , use UCB and two thread process these files.&amp;#039;&amp;#039;&amp;#039;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Two thread&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 1&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 2&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 3&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 4&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 5&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| End&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005110&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005062&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005516&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005531&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005062&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Start&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;000047&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;000062&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;000047&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;000062&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;000062&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5063&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5000&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5469&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5469&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5000&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;5200&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| End&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;010078&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;010062&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;010469&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;010703&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;010016&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Start&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005110&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005062&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005516&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005531&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005062&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;4968&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5000&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;4953&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5172&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;4954&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;5009.4&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
= Overview =&lt;br /&gt;
Through the above late two sets of data we can get the follows conclusion:&lt;br /&gt;
&lt;br /&gt;
=== When Single-core, a task divide into multiple small tasks；these are same cost, processing with single thread, one task one thread and two thread.( one task one thread performance relatively low) ===&lt;br /&gt;
=== When Dual-core, a task divide into multiple small tasks；the waste is close to 0.7-0.8 with one task one thread process ,it is close to 0.66 with two threads process, a single thread process as a benchmark.  ===&lt;br /&gt;
&lt;br /&gt;
Through the first group of data we can get a conclusion:&lt;br /&gt;
&lt;br /&gt;
=== That possess great proportion cost, OOo process ODF. ===&lt;br /&gt;
= How to do =&lt;br /&gt;
How can we improve ODF loading performance.&lt;br /&gt;
&lt;br /&gt;
As multi-core cpu, Can we split process “content.xml” to some small tasks. Process with multi-thread , and merger the result.&lt;br /&gt;
&lt;br /&gt;
As Single-core, Can we split process “content.xml” to some small tasks. Asynchronous load document .&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;* Of course, At the ODF parser will not improve performance?( But now we don&amp;#039;t discuss ) &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
How can we split process “content.xml” to some small tasks:&lt;br /&gt;
&lt;br /&gt;
a) Split “content.xml” content .&lt;br /&gt;
&lt;br /&gt;
b) Colloect the result with sax parser, and Split the result. &lt;br /&gt;
&lt;br /&gt;
= Description =&lt;br /&gt;
== Split “content.xml” content  ==&lt;br /&gt;
Change the document structure, complex nodules defined as a reference link to a single file,the main file contains only simple structure.&lt;br /&gt;
&lt;br /&gt;
It will produce the ODF layout :&lt;br /&gt;
&lt;br /&gt;
 content.xml&lt;br /&gt;
 complex/fragment1.xml&lt;br /&gt;
        /fragment2.xml&lt;br /&gt;
        /fragment3.xml&lt;br /&gt;
        /fragment4.xml&lt;br /&gt;
 …&lt;br /&gt;
&lt;br /&gt;
And “content.xml” will be :&lt;br /&gt;
&lt;br /&gt;
 …&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&amp;lt;table:table xlink:href= “complex/fragment1.xml” /&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 …&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
I think it will produce the same performance optimization when save documentation, this way.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Colloect the result with sax parser, and Split that  ==&lt;br /&gt;
From the above test data, SAX process with relatively less cost itself. We can colloect SAX parser result, and split it to multi part.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;7&amp;quot; | &amp;lt;center&amp;gt;A simple application it implement a XdocumentHandler that colloect the SAX parser result , use UCB read thest files&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;center&amp;gt;Colloect the SAX parser result&amp;lt;/center&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 1&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 2&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 3&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 4&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 5&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| End&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005706&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005510&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005200&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005824&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005527&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Start&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;000029&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;000019&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;000019&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;000012&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;000011&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5677&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5491&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5181&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5812&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5516&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;5695.4&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| End&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;010814&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;010685&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;010297&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;010950&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;010794&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Start&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005706&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005510&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005200&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005824&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005527&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5108&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5175&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5097&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5126&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5267&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;5154.6&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;7&amp;quot; | &amp;lt;center&amp;gt;&amp;#039;&amp;#039;&amp;#039;A simple application it implement a empty XdocumentHandler , use UCB and single thread process these files.&amp;#039;&amp;#039;&amp;#039;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Empty handler&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 1&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 2&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 3&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 4&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 5&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| End&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;003788&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;003763&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;003908&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;004044&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;003702&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Start&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;000015&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;000011&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;000013&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;000014&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;000016&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;3773&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;3752&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;3895&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;4030&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;3686&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;3821.2&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| End&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;008330&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;007444&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;007836&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;007776&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;007465&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Start&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;003788&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;003764&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;003908&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;004044&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;003703&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;3542&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;3680&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;3924&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;3732&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;3762&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;3728&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
We can see it is less cost that colloect the SAX parser result. So we can split that throught some rules and multi-thread to process .&lt;br /&gt;
&lt;br /&gt;
== Implement Description ==&lt;br /&gt;
It has two policies which split processing “content.xml”task to some small tasks：&lt;br /&gt;
&lt;br /&gt;
a) Split “content.xml”to many sub files.&lt;br /&gt;
&lt;br /&gt;
b) Colloect the result(attribute &amp;amp; content ) from sax parser, and split the result to many parts in some rules.&lt;br /&gt;
&lt;br /&gt;
 struct State&lt;br /&gt;
 {&lt;br /&gt;
     rtl_uString* mp_elementName;                // current element tag name can replace to one flag&lt;br /&gt;
     xml::sax::XAttributeList* mp_attributes;   // current element&amp;#039;s attributes&lt;br /&gt;
     rtl_uString* mp_elementContent;            // current element&amp;#039;s content&lt;br /&gt;
&lt;br /&gt;
     sal_uInt32 m_local;                        // It&amp;#039;s position at vector&lt;br /&gt;
     sal_uInt32 m_distance;                        // It&amp;#039;s distance from parent element&lt;br /&gt;
     sal_uInt32 m_count;                        // It&amp;#039;s count of all sub elements &lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;typedef std::vector&amp;lt; State* &amp;gt; StateVectors;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
From compared above multi-thread data, situation single-core / multi-core increase performance is different.&lt;br /&gt;
&lt;br /&gt;
So I think it can consider asynchronous processing as single-core, it can consider parallel processing as multi-core.&lt;br /&gt;
&lt;br /&gt;
It is 2 policies X 2 situations processing description( Of couse it is my imagines )：&lt;br /&gt;
&lt;br /&gt;
=== Single Core + Many Fragments Asynchronism Process  ===&lt;br /&gt;
[[Image:Single_Core_%2B_Many_Fragments_Asynchronism_Process.PNG]]&lt;br /&gt;
=== Single Core + split SAX result Asynchronism Process ===&lt;br /&gt;
[[Image:Single_Core_%2B_split_SAX_result_Asynchronism_Process.PNG]]&lt;br /&gt;
&lt;br /&gt;
=== Multi Core + Many fragments Parallel Process ===&lt;br /&gt;
[[Image:Multi_Core_%2B_Many_fragments_Parallel_Process.PNG]]&lt;br /&gt;
=== Multi-Core + split SAX result Parallel Process ===&lt;br /&gt;
[[Image:Multi_Core_%2B_split_SAX_result_Parallel_Process.PNG]]&lt;br /&gt;
&lt;br /&gt;
== Key points ==&lt;br /&gt;
=== The collected information segmentation algorithm ===&lt;br /&gt;
=== Now for OOo process is not very clear, do n&amp;#039;t know whether be expected. Waits further research ===&lt;br /&gt;
= Appendix =&lt;br /&gt;
== Here is simple test, with no other considerations, just to test the feasibility of the technology. ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;7&amp;quot; | &amp;lt;center&amp;gt;&amp;#039;&amp;#039;&amp;#039;A simple application it implement a XdocumentHandler that colloect the SAX parser result , use UCB read thest files&amp;#039;&amp;#039;&amp;#039;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;center&amp;gt;Colloect the SAX parser result&amp;lt;/center&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 1&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 2&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 3&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 4&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 5&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| End&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005560&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005563&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005551&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005791&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005558&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Start&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;000033&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;000029&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;000030&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;000030&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;000023&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5527&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5534&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5521&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5761&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5535&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;5575.6&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| End&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;010952&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;011093&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;011069&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;011268&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;010972&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Start&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005560&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005563&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005551&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005791&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005558&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5392&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5530&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5518&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5477&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5414&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;5466.2&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;7&amp;quot; | &amp;lt;center&amp;gt;&amp;#039;&amp;#039;&amp;#039;A simple application it implement a XdocumentHandler that colloect the SAX parser result , use UCB read thest files, and one thread process one SAX parser result.&amp;#039;&amp;#039;&amp;#039;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 1&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 2&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 3&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 4&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 5&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| End&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;028326&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;028438&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;028115&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;27835&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;28054&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Start&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;000035&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;000035&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;000030&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;30&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;20&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;28291&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;28403&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;28085&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;27805&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;28034&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;28123.6&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| End&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;055763&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;056048&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;056294&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;056474&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;056538&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Start&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;028326&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;028438&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;28115&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;027835&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;028054&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;27437&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;27610&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;28179&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;28639&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;28484&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;28069.8&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
== A group of large data test ==&lt;br /&gt;
=== OOo calc “content.xml” 35.1 MB / 3.8M ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;7&amp;quot; | &amp;lt;center&amp;gt;&amp;#039;&amp;#039;&amp;#039;OOo reader “content.xml” &amp;#039;&amp;#039;&amp;#039;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| ODF handler&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 1&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 2&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 3&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 4&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 5&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| End&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;38220&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;37340&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;37140&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;66316&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;35378&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Start&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;6559&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;6292&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;7014&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;38431&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;6513&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;31661&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;31048&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;30126&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;27885&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;28865&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;29917&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| End&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;79549&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;82462&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;81397&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;107576&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;873537&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Start&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;47461&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;49710&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;50479&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;78099&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;844944&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;32088&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;32752&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;30918&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;29477&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;28593&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;30765.6&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;7&amp;quot; | &amp;lt;center&amp;gt;&amp;#039;&amp;#039;&amp;#039;“XdocumentHandler” empty implement reader “content.xml” &amp;#039;&amp;#039;&amp;#039;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Empty handler&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 1&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 2&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 3&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 4&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 5&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| End&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;2082&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;2178&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;2118&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;2106&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;2082&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Start&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;16&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;16&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;13&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;15&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;14&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;2066&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;2162&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;2105&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;2091&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;2068&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;2098.4&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| End&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;4070&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;4752&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;4106&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;4088&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;4294&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Start&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;2082&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;2178&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;2118&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;2106&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;2082&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;1988&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;2574&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;1988&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;1982&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;2212&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;2148.8&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
=== OOo writer “content.xml” 62.6 MB / 2.0M ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;7&amp;quot; | &amp;lt;center&amp;gt;&amp;#039;&amp;#039;&amp;#039;OOo reader “content.xml” &amp;#039;&amp;#039;&amp;#039;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| ODF handler&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 1&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 2&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 3&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 4&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 5&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| End&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;108876&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;108729&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;108997&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;108901&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;110140&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Start&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;6201&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;6060&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;6240&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;7029&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;8415&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;102675&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;102669&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;102757&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;101872&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;101725&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;102339.6&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| End&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;229982&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;228416&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;235011&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;234573&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;233124&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Start&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;126660&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;125567&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;132174&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;132292&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;130810&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;103322&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;102849&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;102837&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;102281&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;102314&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;102720.6&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;7&amp;quot; | &amp;lt;center&amp;gt;&amp;#039;&amp;#039;&amp;#039;“XdocumentHandler” empty implement reader “content.xml” &amp;#039;&amp;#039;&amp;#039;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Empty handler&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 1&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 2&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 3&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 4&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 5&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| End&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;4825&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;5595&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;5546&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;5658&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;6072&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Start&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;20&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;59&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;12&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;23&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;629&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;4805&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5536&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5534&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5635&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5443&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;5390.6&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| End&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;9899&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;11815&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;11280&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;11300&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;11394&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Start&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;4825&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;5595&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;5546&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;5658&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;6072&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5074&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;6220&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5734&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5642&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5322&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;5598.4&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Performance]]&lt;/div&gt;</summary>
		<author><name>Zengliangjun</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=Performance/Odf_document_load_performance_implement&amp;diff=151993</id>
		<title>Performance/Odf document load performance implement</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=Performance/Odf_document_load_performance_implement&amp;diff=151993"/>
		<updated>2009-12-07T09:19:02Z</updated>

		<summary type="html">&lt;p&gt;Zengliangjun: moved Performance/Odf document load performance implement to Performance/load performance implement:&amp;amp;#32;Simple the title&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Performance/load performance implement]]&lt;/div&gt;</summary>
		<author><name>Zengliangjun</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=Performance/load_performance_implement&amp;diff=151992</id>
		<title>Performance/load performance implement</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=Performance/load_performance_implement&amp;diff=151992"/>
		<updated>2009-12-07T09:19:02Z</updated>

		<summary type="html">&lt;p&gt;Zengliangjun: moved Performance/Odf document load performance implement to Performance/load performance implement:&amp;amp;#32;Simple the title&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Performance}}&lt;br /&gt;
Please view [[Performance/load_performance_analysis]] about analysis. This document explain implement and some discussion.&lt;br /&gt;
&lt;br /&gt;
= Implement =&lt;br /&gt;
&lt;br /&gt;
== Collect data  throught sax: ==&lt;br /&gt;
* The first step is simple, and no more problem.&lt;br /&gt;
* We can collect valid data information to a data structure throught sax parser, the structure&amp;#039;s elements can be queried quickly by location  identified. I select the vector, now.&lt;br /&gt;
* The  element has these base fields:&lt;br /&gt;
**  sal_uInt16 m_prefix;&lt;br /&gt;
**  rtl_uString* mp_localName;&lt;br /&gt;
**  sal_uInt32 m_local;&lt;br /&gt;
**  sal_uInt32 m_distance;&lt;br /&gt;
**  sal_uInt32 m_count;&lt;br /&gt;
**  and other fields such as namespace / full name / cached token enum ...&lt;br /&gt;
&lt;br /&gt;
== Processing method ==&lt;br /&gt;
* We can go through the result&amp;#039;s element by element&amp;#039;s &amp;quot;m_local&amp;quot; &amp;quot;m_distance&amp;quot; &amp;quot;m_count&amp;quot;; Get parent element and subelements.&lt;br /&gt;
* Every element&amp;#039;s processing that has two process steps: &lt;br /&gt;
** Process itself , process the attribute and process subelements.&lt;br /&gt;
** The result information commit to the parent element.&lt;br /&gt;
[[Image:Odfcontext Process Implement.jpg]]&lt;br /&gt;
&lt;br /&gt;
*** processElement() : Process element&lt;br /&gt;
**** _startElement() : Start element&lt;br /&gt;
**** processSubContexts() : If this element is a parent element, subelements process; every subelement processing will be divided into three steps.&lt;br /&gt;
***** _createChildContext(): Create son context &lt;br /&gt;
***** _processSubContext(): Process subelement &lt;br /&gt;
***** _collectSubContext(): Collect the subelement&amp;#039;s result data &lt;br /&gt;
**** _characters(): Process element&amp;#039;s content&lt;br /&gt;
**** _endElement(): End element&lt;br /&gt;
*** commit(): commit the result data to parent element&lt;br /&gt;
&lt;br /&gt;
=== Solutions ===&lt;br /&gt;
An element has three solutions, Serial / Parallel / delayed processing.&lt;br /&gt;
==== Serial processing ====&lt;br /&gt;
* Every element will be same processing. As current processing end, back to parent. The parent will jump to next son processing if has next, or back to parent&amp;#039;s parent.&lt;br /&gt;
==== Parallel processing ====&lt;br /&gt;
* One element that has many subelements, will split every subelement&amp;#039;s  &amp;quot;_processSubContext()&amp;quot; into different work thread. When all subelements end, the &amp;quot;_collectSubContext()&amp;quot; will be serial processing.&lt;br /&gt;
==== Delayed processing ====&lt;br /&gt;
* One element that has many subelements, the first subelement will process and the others will delay to the document processing end. &lt;br /&gt;
&lt;br /&gt;
== Processing ==&lt;br /&gt;
* It is serial processing to the interests of the whole.&lt;br /&gt;
** We know an odf document will be four base parts : &amp;quot;meta&amp;quot;  &amp;quot;settings&amp;quot;  &amp;quot;styles&amp;quot;  &amp;quot;content&amp;quot;. &lt;br /&gt;
** The dependent relation is :	&amp;quot;content&amp;quot; -&amp;gt; &amp;quot;styles&amp;quot; -&amp;gt; &amp;quot;settings&amp;quot; -&amp;gt; &amp;quot;meta&amp;quot;( I think it is no more problem -:) )&lt;br /&gt;
** So It will be same as now &amp;quot;meta&amp;quot;  -&amp;gt; &amp;quot;settings&amp;quot; -&amp;gt; &amp;quot;styles&amp;quot; -&amp;gt; &amp;quot;content&amp;quot;.&lt;br /&gt;
	&lt;br /&gt;
* To every part parallel processing ,that will be possible. &lt;br /&gt;
** Meta part, Settings part and Styles part those can be &amp;quot;Parallel processing&amp;quot;.&lt;br /&gt;
** I think it can be &amp;quot;Parallel processing&amp;quot; or &amp;quot;Delayed processing&amp;quot;, Conent part; No other part depend this part.&lt;br /&gt;
 &lt;br /&gt;
= Difficulty =&lt;br /&gt;
&lt;br /&gt;
== Meta part ==&lt;br /&gt;
* We know &amp;quot;&amp;lt;office:meta&amp;gt;&amp;quot; , it&amp;#039;s subelements is like &amp;quot;&amp;lt;meta:*&amp;gt;&amp;quot;. I think the subelements has no correlation between. That can be parallel processing.&lt;br /&gt;
* Currently, this part process a DOM object, I do&amp;#039;t know why. So this part is serial processing, now.&lt;br /&gt;
&lt;br /&gt;
== Settings part ==&lt;br /&gt;
* The &amp;quot;&amp;lt;office:settings&amp;gt;&amp;quot;, every subelement of that will get an &amp;quot;beans::PropertyValue&amp;quot;. It can be parallel processing.&lt;br /&gt;
&lt;br /&gt;
== Styles part and Conent part ==&lt;br /&gt;
* The object from sfx2 , sd , sc and sw; It is complex. &lt;br /&gt;
&lt;br /&gt;
= Plan =&lt;br /&gt;
* Implement almost source code about sd to plan.&lt;br /&gt;
* Debug the Serial processing process is right.&lt;br /&gt;
* Try to test Parallel processing. &lt;br /&gt;
* Try to analysis the Delayed processing is feasibility.&lt;br /&gt;
&lt;br /&gt;
[[Category:Performance]]&lt;/div&gt;</summary>
		<author><name>Zengliangjun</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=Performance/load_performance_implement&amp;diff=151991</id>
		<title>Performance/load performance implement</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=Performance/load_performance_implement&amp;diff=151991"/>
		<updated>2009-12-07T09:18:23Z</updated>

		<summary type="html">&lt;p&gt;Zengliangjun: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Performance}}&lt;br /&gt;
Please view [[Performance/load_performance_analysis]] about analysis. This document explain implement and some discussion.&lt;br /&gt;
&lt;br /&gt;
= Implement =&lt;br /&gt;
&lt;br /&gt;
== Collect data  throught sax: ==&lt;br /&gt;
* The first step is simple, and no more problem.&lt;br /&gt;
* We can collect valid data information to a data structure throught sax parser, the structure&amp;#039;s elements can be queried quickly by location  identified. I select the vector, now.&lt;br /&gt;
* The  element has these base fields:&lt;br /&gt;
**  sal_uInt16 m_prefix;&lt;br /&gt;
**  rtl_uString* mp_localName;&lt;br /&gt;
**  sal_uInt32 m_local;&lt;br /&gt;
**  sal_uInt32 m_distance;&lt;br /&gt;
**  sal_uInt32 m_count;&lt;br /&gt;
**  and other fields such as namespace / full name / cached token enum ...&lt;br /&gt;
&lt;br /&gt;
== Processing method ==&lt;br /&gt;
* We can go through the result&amp;#039;s element by element&amp;#039;s &amp;quot;m_local&amp;quot; &amp;quot;m_distance&amp;quot; &amp;quot;m_count&amp;quot;; Get parent element and subelements.&lt;br /&gt;
* Every element&amp;#039;s processing that has two process steps: &lt;br /&gt;
** Process itself , process the attribute and process subelements.&lt;br /&gt;
** The result information commit to the parent element.&lt;br /&gt;
[[Image:Odfcontext Process Implement.jpg]]&lt;br /&gt;
&lt;br /&gt;
*** processElement() : Process element&lt;br /&gt;
**** _startElement() : Start element&lt;br /&gt;
**** processSubContexts() : If this element is a parent element, subelements process; every subelement processing will be divided into three steps.&lt;br /&gt;
***** _createChildContext(): Create son context &lt;br /&gt;
***** _processSubContext(): Process subelement &lt;br /&gt;
***** _collectSubContext(): Collect the subelement&amp;#039;s result data &lt;br /&gt;
**** _characters(): Process element&amp;#039;s content&lt;br /&gt;
**** _endElement(): End element&lt;br /&gt;
*** commit(): commit the result data to parent element&lt;br /&gt;
&lt;br /&gt;
=== Solutions ===&lt;br /&gt;
An element has three solutions, Serial / Parallel / delayed processing.&lt;br /&gt;
==== Serial processing ====&lt;br /&gt;
* Every element will be same processing. As current processing end, back to parent. The parent will jump to next son processing if has next, or back to parent&amp;#039;s parent.&lt;br /&gt;
==== Parallel processing ====&lt;br /&gt;
* One element that has many subelements, will split every subelement&amp;#039;s  &amp;quot;_processSubContext()&amp;quot; into different work thread. When all subelements end, the &amp;quot;_collectSubContext()&amp;quot; will be serial processing.&lt;br /&gt;
==== Delayed processing ====&lt;br /&gt;
* One element that has many subelements, the first subelement will process and the others will delay to the document processing end. &lt;br /&gt;
&lt;br /&gt;
== Processing ==&lt;br /&gt;
* It is serial processing to the interests of the whole.&lt;br /&gt;
** We know an odf document will be four base parts : &amp;quot;meta&amp;quot;  &amp;quot;settings&amp;quot;  &amp;quot;styles&amp;quot;  &amp;quot;content&amp;quot;. &lt;br /&gt;
** The dependent relation is :	&amp;quot;content&amp;quot; -&amp;gt; &amp;quot;styles&amp;quot; -&amp;gt; &amp;quot;settings&amp;quot; -&amp;gt; &amp;quot;meta&amp;quot;( I think it is no more problem -:) )&lt;br /&gt;
** So It will be same as now &amp;quot;meta&amp;quot;  -&amp;gt; &amp;quot;settings&amp;quot; -&amp;gt; &amp;quot;styles&amp;quot; -&amp;gt; &amp;quot;content&amp;quot;.&lt;br /&gt;
	&lt;br /&gt;
* To every part parallel processing ,that will be possible. &lt;br /&gt;
** Meta part, Settings part and Styles part those can be &amp;quot;Parallel processing&amp;quot;.&lt;br /&gt;
** I think it can be &amp;quot;Parallel processing&amp;quot; or &amp;quot;Delayed processing&amp;quot;, Conent part; No other part depend this part.&lt;br /&gt;
 &lt;br /&gt;
= Difficulty =&lt;br /&gt;
&lt;br /&gt;
== Meta part ==&lt;br /&gt;
* We know &amp;quot;&amp;lt;office:meta&amp;gt;&amp;quot; , it&amp;#039;s subelements is like &amp;quot;&amp;lt;meta:*&amp;gt;&amp;quot;. I think the subelements has no correlation between. That can be parallel processing.&lt;br /&gt;
* Currently, this part process a DOM object, I do&amp;#039;t know why. So this part is serial processing, now.&lt;br /&gt;
&lt;br /&gt;
== Settings part ==&lt;br /&gt;
* The &amp;quot;&amp;lt;office:settings&amp;gt;&amp;quot;, every subelement of that will get an &amp;quot;beans::PropertyValue&amp;quot;. It can be parallel processing.&lt;br /&gt;
&lt;br /&gt;
== Styles part and Conent part ==&lt;br /&gt;
* The object from sfx2 , sd , sc and sw; It is complex. &lt;br /&gt;
&lt;br /&gt;
= Plan =&lt;br /&gt;
* Implement almost source code about sd to plan.&lt;br /&gt;
* Debug the Serial processing process is right.&lt;br /&gt;
* Try to test Parallel processing. &lt;br /&gt;
* Try to analysis the Delayed processing is feasibility.&lt;br /&gt;
&lt;br /&gt;
[[Category:Performance]]&lt;/div&gt;</summary>
		<author><name>Zengliangjun</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=Performance/Odf_document_load_performance_increase_feasibility_analysis&amp;diff=151990</id>
		<title>Performance/Odf document load performance increase feasibility analysis</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=Performance/Odf_document_load_performance_increase_feasibility_analysis&amp;diff=151990"/>
		<updated>2009-12-07T09:16:01Z</updated>

		<summary type="html">&lt;p&gt;Zengliangjun: moved Performance/Odf document load performance increase feasibility analysis to Performance/load performance analysis:&amp;amp;#32;simple the title&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Performance/load performance analysis]]&lt;/div&gt;</summary>
		<author><name>Zengliangjun</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=Performance/load_performance_analysis&amp;diff=151989</id>
		<title>Performance/load performance analysis</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=Performance/load_performance_analysis&amp;diff=151989"/>
		<updated>2009-12-07T09:16:01Z</updated>

		<summary type="html">&lt;p&gt;Zengliangjun: moved Performance/Odf document load performance increase feasibility analysis to Performance/load performance analysis:&amp;amp;#32;simple the title&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= A group of test data =&lt;br /&gt;
== Interesting contrast analysis data SAX parser processing ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;7&amp;quot; | &amp;lt;center&amp;gt;&amp;#039;&amp;#039;&amp;#039;Start OOo writer, read a document which has a 3.9 MB &amp;quot;content.xml&amp;quot; &amp;#039;&amp;#039;&amp;#039;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| ODF handler&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 1&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 2&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 3&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 4&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 5&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| End&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;12759&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;11805&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;13233&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;11312&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;13279&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Start&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;6230&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;5245&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;6758&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;5378&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;6541&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;6529&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;6560&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;6475&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5934&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;6738&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;6447.2&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| End&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;31305&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;36262&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;30083&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;28452&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;28584&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Start&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;24852&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;30694&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;23611&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;22018&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;22148&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;6453&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5568&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;6472&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;6434&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;6436&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;6272.6&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;7&amp;quot; | &amp;lt;center&amp;gt;&amp;#039;&amp;#039;&amp;#039;A simple application it implement a empty XdocumentHandler read the sample &amp;quot;content.xml&amp;quot; &amp;#039;&amp;#039;&amp;#039;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Empty handler&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 1&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 2&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 3&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 4&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 5&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| End&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;354&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;362&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;355&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;370&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;312&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Start&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;30&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;30&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;29&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;30&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;24&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;324&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;332&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;326&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;340&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;288&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;322&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| End&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;635&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;644&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;633&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;651&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;588&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Start&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;354&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;362&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;355&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;370&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;312&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;281&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;282&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;278&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;281&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;276&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;279.6&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;The first “start – end” contain load library cost ，the second “start – end” do not contain。&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
All test result are warm .&lt;br /&gt;
&lt;br /&gt;
We can find the OOo processing more cost than empty XdocumentHandler。&lt;br /&gt;
&lt;br /&gt;
== Interesting contrast analysis data Dual-core processing ==&lt;br /&gt;
The test with 912 xml files ( total size 44.2 MB )&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;7&amp;quot; | &amp;lt;center&amp;gt;&amp;#039;&amp;#039;&amp;#039;A simple application it implement a empty XdocumentHandler , use UCB and single thread process these files.&amp;#039;&amp;#039;&amp;#039;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Single thread&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 1&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 2&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 3&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 4&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 5&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| End&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;003604&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;003549&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;003500&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;003538&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;003492&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Start&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;000029&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;000029&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;000029&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;000023&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;000029&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;3575&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;3520&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;3471&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;3515&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;3463&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;3508.8&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| End&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;007076&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;006957&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;006924&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;007025&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;006897&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Start&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;003604&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;003550&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;003500&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;003538&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;003492&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;3472&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;3407&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;3424&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;3487&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;3405&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;3439&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;7&amp;quot; | &amp;lt;center&amp;gt;&amp;#039;&amp;#039;&amp;#039;A simple application it implement a empty XdocumentHandler , use UCB and one file one thread process these files.&amp;#039;&amp;#039;&amp;#039;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;center&amp;gt;&amp;#039;&amp;#039;&amp;#039;one file one thread&amp;#039;&amp;#039;&amp;#039;&amp;lt;/center&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 1&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 2&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 3&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 4&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 5&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| End&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;002696&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;002763&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;002560&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;002827&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;002133&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Start&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;000018&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;000026&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;000028&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;000030&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;000033&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;2678&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;2737&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;2532&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;2797&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;2100&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;2568.8&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| End&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005318&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005471&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005224&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005174&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;004816&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Start&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;002696&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;002764&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;002560&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;002827&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;002133&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;2622&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;2707&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;2664&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;2347&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;2683&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;2604.6&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;7&amp;quot; | &amp;lt;center&amp;gt;&amp;#039;&amp;#039;&amp;#039;A simple application it implement a empty XdocumentHandler , use UCB and two thread process these files.&amp;#039;&amp;#039;&amp;#039;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Two thread&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 1&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 2&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 3&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 4&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 5&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| End&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;002314&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;002332&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;002356&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;002377&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;002411&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Start&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;000027&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;000029&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;000029&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;000030&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;000030&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;2287&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;2303&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;2327&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;2347&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;2381&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;2329&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| End&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;004568&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;004611&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;004622&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;004639&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;004731&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Start&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;002314&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;002332&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;002356&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;002377&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;002411&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;2254&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;2279&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;2266&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;2262&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;2320&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;2276.2&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
== Interesting contrast analysis data Mononuclear processing ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;7&amp;quot; | &amp;lt;center&amp;gt;&amp;#039;&amp;#039;&amp;#039;A simple application it implement a empty XdocumentHandler , use UCB and single thread process these files.&amp;#039;&amp;#039;&amp;#039;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Single thread&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 1&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 2&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 3&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 4&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 5&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| End&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005062&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005531&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005516&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005062&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005110&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Start&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;000062&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;000062&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;000047&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;000062&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;000047&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5000&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5469&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5469&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5000&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5063&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;5200.2&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| End&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;010016&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;010703&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;010469&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;010062&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;010078&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Start&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005062&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005531&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005516&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005062&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005110&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;4954&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5172&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;4953&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5000&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;4968&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;5009.4&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;7&amp;quot; | &amp;lt;center&amp;gt;&amp;#039;&amp;#039;&amp;#039;A simple application it implement a empty XdocumentHandler , use UCB and one file one thread process these files.&amp;#039;&amp;#039;&amp;#039;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;center&amp;gt;&amp;#039;&amp;#039;&amp;#039;one file one thread&amp;#039;&amp;#039;&amp;#039;&amp;lt;/center&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 1&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 2&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 3&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 4&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 5&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| End&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005391&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005391&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005422&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005797&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005516&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Start&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;000063&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;000047&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;000047&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;000063&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;000063&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5328&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5344&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5375&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5734&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5453&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;5446.8&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| End&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;010719&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;010672&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;010703&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;011453&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;010797&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Start&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005391&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005391&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005422&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005797&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005516&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5328&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5381&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5281&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5656&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5281&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;5385.4&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;7&amp;quot; | &amp;lt;center&amp;gt;&amp;#039;&amp;#039;&amp;#039;A simple application it implement a empty XdocumentHandler , use UCB and two thread process these files.&amp;#039;&amp;#039;&amp;#039;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Two thread&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 1&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 2&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 3&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 4&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 5&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| End&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005110&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005062&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005516&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005531&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005062&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Start&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;000047&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;000062&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;000047&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;000062&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;000062&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5063&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5000&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5469&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5469&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5000&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;5200&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| End&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;010078&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;010062&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;010469&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;010703&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;010016&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Start&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005110&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005062&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005516&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005531&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005062&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;4968&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5000&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;4953&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5172&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;4954&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;5009.4&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
= Overview =&lt;br /&gt;
Through the above late two sets of data we can get the follows conclusion:&lt;br /&gt;
&lt;br /&gt;
=== When Single-core, a task divide into multiple small tasks；these are same cost, processing with single thread, one task one thread and two thread.( one task one thread performance relatively low) ===&lt;br /&gt;
=== When Dual-core, a task divide into multiple small tasks；the waste is close to 0.7-0.8 with one task one thread process ,it is close to 0.66 with two threads process, a single thread process as a benchmark.  ===&lt;br /&gt;
&lt;br /&gt;
Through the first group of data we can get a conclusion:&lt;br /&gt;
&lt;br /&gt;
=== That possess great proportion cost, OOo process ODF. ===&lt;br /&gt;
= How to do =&lt;br /&gt;
How can we improve ODF loading performance.&lt;br /&gt;
&lt;br /&gt;
As multi-core cpu, Can we split process “content.xml” to some small tasks. Process with multi-thread , and merger the result.&lt;br /&gt;
&lt;br /&gt;
As Single-core, Can we split process “content.xml” to some small tasks. Asynchronous load document .&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;* Of course, At the ODF parser will not improve performance?( But now we don&amp;#039;t discuss ) &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
How can we split process “content.xml” to some small tasks:&lt;br /&gt;
&lt;br /&gt;
a) Split “content.xml” content .&lt;br /&gt;
&lt;br /&gt;
b) Colloect the result with sax parser, and Split the result. &lt;br /&gt;
&lt;br /&gt;
= Description =&lt;br /&gt;
== Split “content.xml” content  ==&lt;br /&gt;
Change the document structure, complex nodules defined as a reference link to a single file,the main file contains only simple structure.&lt;br /&gt;
&lt;br /&gt;
It will produce the ODF layout :&lt;br /&gt;
&lt;br /&gt;
 content.xml&lt;br /&gt;
 complex/fragment1.xml&lt;br /&gt;
        /fragment2.xml&lt;br /&gt;
        /fragment3.xml&lt;br /&gt;
        /fragment4.xml&lt;br /&gt;
 …&lt;br /&gt;
&lt;br /&gt;
And “content.xml” will be :&lt;br /&gt;
&lt;br /&gt;
 …&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&amp;lt;table:table xlink:href= “complex/fragment1.xml” /&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 …&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
I think it will produce the same performance optimization when save documentation, this way.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Colloect the result with sax parser, and Split that  ==&lt;br /&gt;
From the above test data, SAX process with relatively less cost itself. We can colloect SAX parser result, and split it to multi part.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;7&amp;quot; | &amp;lt;center&amp;gt;A simple application it implement a XdocumentHandler that colloect the SAX parser result , use UCB read thest files&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;center&amp;gt;Colloect the SAX parser result&amp;lt;/center&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 1&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 2&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 3&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 4&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 5&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| End&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005706&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005510&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005200&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005824&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005527&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Start&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;000029&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;000019&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;000019&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;000012&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;000011&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5677&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5491&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5181&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5812&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5516&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;5695.4&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| End&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;010814&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;010685&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;010297&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;010950&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;010794&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Start&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005706&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005510&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005200&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005824&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005527&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5108&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5175&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5097&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5126&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5267&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;5154.6&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;7&amp;quot; | &amp;lt;center&amp;gt;&amp;#039;&amp;#039;&amp;#039;A simple application it implement a empty XdocumentHandler , use UCB and single thread process these files.&amp;#039;&amp;#039;&amp;#039;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Empty handler&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 1&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 2&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 3&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 4&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 5&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| End&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;003788&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;003763&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;003908&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;004044&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;003702&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Start&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;000015&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;000011&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;000013&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;000014&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;000016&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;3773&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;3752&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;3895&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;4030&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;3686&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;3821.2&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| End&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;008330&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;007444&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;007836&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;007776&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;007465&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Start&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;003788&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;003764&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;003908&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;004044&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;003703&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;3542&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;3680&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;3924&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;3732&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;3762&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;3728&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
We can see it is less cost that colloect the SAX parser result. So we can split that throught some rules and multi-thread to process .&lt;br /&gt;
&lt;br /&gt;
== Implement Description ==&lt;br /&gt;
It has two policies which split processing “content.xml”task to some small tasks：&lt;br /&gt;
&lt;br /&gt;
a) Split “content.xml”to many sub files.&lt;br /&gt;
&lt;br /&gt;
b) Colloect the result(attribute &amp;amp; content ) from sax parser, and split the result to many parts in some rules.&lt;br /&gt;
&lt;br /&gt;
 struct State&lt;br /&gt;
 {&lt;br /&gt;
     rtl_uString* mp_elementName;                // current element tag name can replace to one flag&lt;br /&gt;
     xml::sax::XAttributeList* mp_attributes;   // current element&amp;#039;s attributes&lt;br /&gt;
     rtl_uString* mp_elementContent;            // current element&amp;#039;s content&lt;br /&gt;
&lt;br /&gt;
     sal_uInt32 m_local;                        // It&amp;#039;s position at vector&lt;br /&gt;
     sal_uInt32 m_distance;                        // It&amp;#039;s distance from parent element&lt;br /&gt;
     sal_uInt32 m_count;                        // It&amp;#039;s count of all sub elements &lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;typedef std::vector&amp;lt; State* &amp;gt; StateVectors;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
From compared above multi-thread data, situation single-core / multi-core increase performance is different.&lt;br /&gt;
&lt;br /&gt;
So I think it can consider asynchronous processing as single-core, it can consider parallel processing as multi-core.&lt;br /&gt;
&lt;br /&gt;
It is 2 policies X 2 situations processing description( Of couse it is my imagines )：&lt;br /&gt;
&lt;br /&gt;
=== Single Core + Many Fragments Asynchronism Process  ===&lt;br /&gt;
[[Image:Single_Core_%2B_Many_Fragments_Asynchronism_Process.PNG]]&lt;br /&gt;
=== Single Core + split SAX result Asynchronism Process ===&lt;br /&gt;
[[Image:Single_Core_%2B_split_SAX_result_Asynchronism_Process.PNG]]&lt;br /&gt;
&lt;br /&gt;
=== Multi Core + Many fragments Parallel Process ===&lt;br /&gt;
[[Image:Multi_Core_%2B_Many_fragments_Parallel_Process.PNG]]&lt;br /&gt;
=== Multi-Core + split SAX result Parallel Process ===&lt;br /&gt;
[[Image:Multi_Core_%2B_split_SAX_result_Parallel_Process.PNG]]&lt;br /&gt;
&lt;br /&gt;
== Key points ==&lt;br /&gt;
=== The collected information segmentation algorithm ===&lt;br /&gt;
=== Now for OOo process is not very clear, do n&amp;#039;t know whether be expected. Waits further research ===&lt;br /&gt;
= Appendix =&lt;br /&gt;
== Here is simple test, with no other considerations, just to test the feasibility of the technology. ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;7&amp;quot; | &amp;lt;center&amp;gt;&amp;#039;&amp;#039;&amp;#039;A simple application it implement a XdocumentHandler that colloect the SAX parser result , use UCB read thest files&amp;#039;&amp;#039;&amp;#039;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;center&amp;gt;Colloect the SAX parser result&amp;lt;/center&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 1&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 2&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 3&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 4&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 5&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| End&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005560&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005563&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005551&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005791&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005558&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Start&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;000033&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;000029&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;000030&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;000030&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;000023&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5527&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5534&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5521&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5761&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5535&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;5575.6&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| End&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;010952&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;011093&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;011069&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;011268&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;010972&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Start&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005560&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005563&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005551&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005791&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;005558&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5392&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5530&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5518&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5477&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5414&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;5466.2&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;7&amp;quot; | &amp;lt;center&amp;gt;&amp;#039;&amp;#039;&amp;#039;A simple application it implement a XdocumentHandler that colloect the SAX parser result , use UCB read thest files, and one thread process one SAX parser result.&amp;#039;&amp;#039;&amp;#039;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 1&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 2&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 3&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 4&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 5&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| End&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;028326&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;028438&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;028115&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;27835&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;28054&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Start&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;000035&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;000035&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;000030&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;30&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;20&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;28291&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;28403&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;28085&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;27805&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;28034&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;28123.6&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| End&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;055763&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;056048&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;056294&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;056474&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;056538&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Start&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;028326&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;028438&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;28115&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;027835&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;028054&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;27437&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;27610&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;28179&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;28639&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;28484&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;28069.8&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
== A group of large data test ==&lt;br /&gt;
=== OOo calc “content.xml” 35.1 MB / 3.8M ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;7&amp;quot; | &amp;lt;center&amp;gt;&amp;#039;&amp;#039;&amp;#039;OOo reader “content.xml” &amp;#039;&amp;#039;&amp;#039;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| ODF handler&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 1&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 2&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 3&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 4&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 5&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| End&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;38220&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;37340&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;37140&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;66316&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;35378&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Start&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;6559&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;6292&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;7014&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;38431&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;6513&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;31661&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;31048&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;30126&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;27885&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;28865&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;29917&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| End&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;79549&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;82462&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;81397&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;107576&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;873537&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Start&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;47461&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;49710&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;50479&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;78099&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;844944&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;32088&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;32752&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;30918&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;29477&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;28593&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;30765.6&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;7&amp;quot; | &amp;lt;center&amp;gt;&amp;#039;&amp;#039;&amp;#039;“XdocumentHandler” empty implement reader “content.xml” &amp;#039;&amp;#039;&amp;#039;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Empty handler&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 1&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 2&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 3&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 4&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 5&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| End&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;2082&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;2178&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;2118&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;2106&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;2082&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Start&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;16&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;16&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;13&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;15&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;14&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;2066&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;2162&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;2105&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;2091&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;2068&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;2098.4&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| End&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;4070&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;4752&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;4106&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;4088&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;4294&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Start&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;2082&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;2178&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;2118&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;2106&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;2082&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;1988&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;2574&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;1988&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;1982&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;2212&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;2148.8&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
=== OOo writer “content.xml” 62.6 MB / 2.0M ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;7&amp;quot; | &amp;lt;center&amp;gt;&amp;#039;&amp;#039;&amp;#039;OOo reader “content.xml” &amp;#039;&amp;#039;&amp;#039;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| ODF handler&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 1&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 2&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 3&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 4&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 5&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| End&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;108876&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;108729&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;108997&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;108901&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;110140&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Start&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;6201&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;6060&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;6240&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;7029&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;8415&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;102675&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;102669&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;102757&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;101872&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;101725&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;102339.6&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| End&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;229982&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;228416&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;235011&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;234573&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;233124&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Start&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;126660&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;125567&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;132174&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;132292&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;130810&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;103322&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;102849&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;102837&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;102281&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;102314&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;102720.6&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;7&amp;quot; | &amp;lt;center&amp;gt;&amp;#039;&amp;#039;&amp;#039;“XdocumentHandler” empty implement reader “content.xml” &amp;#039;&amp;#039;&amp;#039;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Empty handler&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 1&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 2&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 3&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 4&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;No . 5&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| End&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;4825&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;5595&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;5546&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;5658&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;6072&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Start&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;20&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;59&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;12&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;23&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;629&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;4805&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5536&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5534&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5635&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5443&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;5390.6&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| End&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;9899&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;11815&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;11280&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;11300&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;11394&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Start&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;4825&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;5595&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;5546&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;5658&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;6072&amp;lt;/div&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5074&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;6220&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5734&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5642&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;5322&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;5598.4&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Performance]]&lt;/div&gt;</summary>
		<author><name>Zengliangjun</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=Performance/load_performance_implement&amp;diff=151988</id>
		<title>Performance/load performance implement</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=Performance/load_performance_implement&amp;diff=151988"/>
		<updated>2009-12-07T09:06:33Z</updated>

		<summary type="html">&lt;p&gt;Zengliangjun: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Performance}}&lt;br /&gt;
Please view [[Performance/Odf_document_load_performance_increase_feasibility_analysis]] about analysis. This document explain implement and some discussion.&lt;br /&gt;
&lt;br /&gt;
= Implement =&lt;br /&gt;
&lt;br /&gt;
== Collect data  throught sax: ==&lt;br /&gt;
* The first step is simple, and no more problem.&lt;br /&gt;
* We can collect valid data information to a data structure throught sax parser, the structure&amp;#039;s elements can be queried quickly by location  identified. I select the vector, now.&lt;br /&gt;
* The  element has these base fields:&lt;br /&gt;
**  sal_uInt16 m_prefix;&lt;br /&gt;
**  rtl_uString* mp_localName;&lt;br /&gt;
**  sal_uInt32 m_local;&lt;br /&gt;
**  sal_uInt32 m_distance;&lt;br /&gt;
**  sal_uInt32 m_count;&lt;br /&gt;
**  and other fields such as namespace / full name / cached token enum ...&lt;br /&gt;
&lt;br /&gt;
== Processing method ==&lt;br /&gt;
* We can go through the result&amp;#039;s element by element&amp;#039;s &amp;quot;m_local&amp;quot; &amp;quot;m_distance&amp;quot; &amp;quot;m_count&amp;quot;; Get parent element and subelements.&lt;br /&gt;
* Every element&amp;#039;s processing that has two process steps: &lt;br /&gt;
** Process itself , process the attribute and process subelements.&lt;br /&gt;
** The result information commit to the parent element.&lt;br /&gt;
[[Image:Odfcontext Process Implement.jpg]]&lt;br /&gt;
&lt;br /&gt;
*** processElement() : Process element&lt;br /&gt;
**** _startElement() : Start element&lt;br /&gt;
**** processSubContexts() : If this element is a parent element, subelements process; every subelement processing will be divided into three steps.&lt;br /&gt;
***** _createChildContext(): Create son context &lt;br /&gt;
***** _processSubContext(): Process subelement &lt;br /&gt;
***** _collectSubContext(): Collect the subelement&amp;#039;s result data &lt;br /&gt;
**** _characters(): Process element&amp;#039;s content&lt;br /&gt;
**** _endElement(): End element&lt;br /&gt;
*** commit(): commit the result data to parent element&lt;br /&gt;
&lt;br /&gt;
=== Solutions ===&lt;br /&gt;
An element has three solutions, Serial / Parallel / delayed processing.&lt;br /&gt;
==== Serial processing ====&lt;br /&gt;
* Every element will be same processing. As current processing end, back to parent. The parent will jump to next son processing if has next, or back to parent&amp;#039;s parent.&lt;br /&gt;
==== Parallel processing ====&lt;br /&gt;
* One element that has many subelements, will split every subelement&amp;#039;s  &amp;quot;_processSubContext()&amp;quot; into different work thread. When all subelements end, the &amp;quot;_collectSubContext()&amp;quot; will be serial processing.&lt;br /&gt;
==== Delayed processing ====&lt;br /&gt;
* One element that has many subelements, the first subelement will process and the others will delay to the document processing end. &lt;br /&gt;
&lt;br /&gt;
== Processing ==&lt;br /&gt;
* It is serial processing to the interests of the whole.&lt;br /&gt;
** We know an odf document will be four base parts : &amp;quot;meta&amp;quot;  &amp;quot;settings&amp;quot;  &amp;quot;styles&amp;quot;  &amp;quot;content&amp;quot;. &lt;br /&gt;
** The dependent relation is :	&amp;quot;content&amp;quot; -&amp;gt; &amp;quot;styles&amp;quot; -&amp;gt; &amp;quot;settings&amp;quot; -&amp;gt; &amp;quot;meta&amp;quot;( I think it is no more problem -:) )&lt;br /&gt;
** So It will be same as now &amp;quot;meta&amp;quot;  -&amp;gt; &amp;quot;settings&amp;quot; -&amp;gt; &amp;quot;styles&amp;quot; -&amp;gt; &amp;quot;content&amp;quot;.&lt;br /&gt;
	&lt;br /&gt;
* To every part parallel processing ,that will be possible. &lt;br /&gt;
** Meta part, Settings part and Styles part those can be &amp;quot;Parallel processing&amp;quot;.&lt;br /&gt;
** I think it can be &amp;quot;Parallel processing&amp;quot; or &amp;quot;Delayed processing&amp;quot;, Conent part; No other part depend this part.&lt;br /&gt;
 &lt;br /&gt;
= Difficulty =&lt;br /&gt;
&lt;br /&gt;
== Meta part ==&lt;br /&gt;
* We know &amp;quot;&amp;lt;office:meta&amp;gt;&amp;quot; , it&amp;#039;s subelements is like &amp;quot;&amp;lt;meta:*&amp;gt;&amp;quot;. I think the subelements has no correlation between. That can be parallel processing.&lt;br /&gt;
* Currently, this part process a DOM object, I do&amp;#039;t know why. So this part is serial processing, now.&lt;br /&gt;
&lt;br /&gt;
== Settings part ==&lt;br /&gt;
* The &amp;quot;&amp;lt;office:settings&amp;gt;&amp;quot;, every subelement of that will get an &amp;quot;beans::PropertyValue&amp;quot;. It can be parallel processing.&lt;br /&gt;
&lt;br /&gt;
== Styles part and Conent part ==&lt;br /&gt;
* The object from sfx2 , sd , sc and sw; It is complex. &lt;br /&gt;
&lt;br /&gt;
= Plan =&lt;br /&gt;
* Implement almost source code about sd to plan.&lt;br /&gt;
* Debug the Serial processing process is right.&lt;br /&gt;
* Try to test Parallel processing. &lt;br /&gt;
* Try to analysis the Delayed processing is feasibility.&lt;br /&gt;
&lt;br /&gt;
[[Category:Performance]]&lt;/div&gt;</summary>
		<author><name>Zengliangjun</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=Performance/load_performance_implement&amp;diff=151987</id>
		<title>Performance/load performance implement</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=Performance/load_performance_implement&amp;diff=151987"/>
		<updated>2009-12-07T08:59:36Z</updated>

		<summary type="html">&lt;p&gt;Zengliangjun: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Performance}}&lt;br /&gt;
Please view [[Performance/Odf_document_load_performance_increase_feasibility_analysis]] about analysis. This document explain implement and some discussion.&lt;br /&gt;
&lt;br /&gt;
= Implement =&lt;br /&gt;
&lt;br /&gt;
== Collect data  throught sax: ==&lt;br /&gt;
* The first step is simple, and no more problem.&lt;br /&gt;
* We can collect valid data information to a data structure throught sax parser, the structure&amp;#039;s elements can be queried quickly by location  identified. I select the vector, now.&lt;br /&gt;
* The  element has these base fields:&lt;br /&gt;
**  sal_uInt16 m_prefix;&lt;br /&gt;
**  rtl_uString* mp_localName;&lt;br /&gt;
**  sal_uInt32 m_local;&lt;br /&gt;
**  sal_uInt32 m_distance;&lt;br /&gt;
**  sal_uInt32 m_count;&lt;br /&gt;
**  and other fields such as namespace / full name / cached token enum ...&lt;br /&gt;
&lt;br /&gt;
== Processing method ==&lt;br /&gt;
* We can go through the result&amp;#039;s element by element&amp;#039;s &amp;quot;m_local&amp;quot; &amp;quot;m_distance&amp;quot; &amp;quot;m_count&amp;quot;; Get parent element and subelements.&lt;br /&gt;
* Every element&amp;#039;s processing that has two process steps: &lt;br /&gt;
** Process itself , process the attribute and process subelements.&lt;br /&gt;
** The result information commit to the parent element.&lt;br /&gt;
[[Image:Odfcontext Process Implement.jpg]]&lt;br /&gt;
&lt;br /&gt;
*** processElement() : Process element&lt;br /&gt;
**** _startElement() : Start element&lt;br /&gt;
**** processSubContexts() : If this element is a parent element, subelements process; every subelement processing will be divided into three steps.&lt;br /&gt;
***** _createChildContext(): Create son context &lt;br /&gt;
***** _processSubContext(): Process subelement &lt;br /&gt;
***** _collectSubContext(): Collect the subelement&amp;#039;s result data &lt;br /&gt;
**** _characters(): Process element&amp;#039;s content&lt;br /&gt;
**** _endElement(): End element&lt;br /&gt;
*** commit(): commit the result data to parent element&lt;br /&gt;
&lt;br /&gt;
* An element has three solutions, Serial / Parallel / delayed processing.&lt;br /&gt;
** Serial processing: every element will be same processing. As current processing end, back to parent. The parent will jump to next son processing if has next, or back to parent&amp;#039;s parent.&lt;br /&gt;
** Parallel processing: One element that has many subelements, will split every subelement&amp;#039;s  &amp;quot;_processSubContext()&amp;quot; into different work thread. When all subelements end, the &amp;quot;_collectSubContext()&amp;quot; will be serial processing.&lt;br /&gt;
** Delayed processing: One element that has many subelements, the first subelement will process and the others will delay to the document processing end. &lt;br /&gt;
&lt;br /&gt;
== Processing ==&lt;br /&gt;
* It is serial processing to the interests of the whole.&lt;br /&gt;
** We know an odf document will be four base parts : &amp;quot;meta&amp;quot;  &amp;quot;settings&amp;quot;  &amp;quot;styles&amp;quot;  &amp;quot;content&amp;quot;. &lt;br /&gt;
** The dependent relation is :	&amp;quot;content&amp;quot; -&amp;gt; &amp;quot;styles&amp;quot; -&amp;gt; &amp;quot;settings&amp;quot; -&amp;gt; &amp;quot;meta&amp;quot;( I think it is no more problem -:) )&lt;br /&gt;
** So It will be same as now &amp;quot;meta&amp;quot;  -&amp;gt; &amp;quot;settings&amp;quot; -&amp;gt; &amp;quot;styles&amp;quot; -&amp;gt; &amp;quot;content&amp;quot;.&lt;br /&gt;
	&lt;br /&gt;
* To every part parallel processing ,that will be possible. &lt;br /&gt;
** Meta part, Settings part and Styles part those can be &amp;quot;Parallel processing&amp;quot;.&lt;br /&gt;
** I think it can be &amp;quot;Parallel processing&amp;quot; or &amp;quot;Delayed processing&amp;quot;, Conent part; No other part depend this part.&lt;br /&gt;
 &lt;br /&gt;
= Difficulty =&lt;br /&gt;
&lt;br /&gt;
== Meta part ==&lt;br /&gt;
* We know &amp;quot;&amp;lt;office:meta&amp;gt;&amp;quot; , it&amp;#039;s subelements is like &amp;quot;&amp;lt;meta:*&amp;gt;&amp;quot;. I think the subelements has no correlation between. That can be parallel processing.&lt;br /&gt;
* Currently, this part process a DOM object, I do&amp;#039;t know why. So this part is serial processing, now.&lt;br /&gt;
&lt;br /&gt;
== Settings part ==&lt;br /&gt;
* The &amp;quot;&amp;lt;office:settings&amp;gt;&amp;quot;, every subelement of that will get an &amp;quot;beans::PropertyValue&amp;quot;. It can be parallel processing.&lt;br /&gt;
&lt;br /&gt;
== Styles part and Conent part ==&lt;br /&gt;
* The object from sfx2 , sd , sc and sw; It is complex. &lt;br /&gt;
&lt;br /&gt;
= Plan =&lt;br /&gt;
* Implement almost source code about sd to plan.&lt;br /&gt;
* Debug the Serial processing process is right.&lt;br /&gt;
* Try to test Parallel processing. &lt;br /&gt;
* Try to analysis the Delayed processing is feasibility.&lt;br /&gt;
&lt;br /&gt;
[[Category:Performance]]&lt;/div&gt;</summary>
		<author><name>Zengliangjun</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=Performance/Odf_document_load_performance_increase_feasibility_analysis/Implement&amp;diff=151972</id>
		<title>Performance/Odf document load performance increase feasibility analysis/Implement</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=Performance/Odf_document_load_performance_increase_feasibility_analysis/Implement&amp;diff=151972"/>
		<updated>2009-12-07T03:23:29Z</updated>

		<summary type="html">&lt;p&gt;Zengliangjun: moved Performance/Odf document load performance increase feasibility analysis/Implement to Performance/Odf document load performance implement:&amp;amp;#32;Description of odf document load performance&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Performance/Odf document load performance implement]]&lt;/div&gt;</summary>
		<author><name>Zengliangjun</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=Performance/load_performance_implement&amp;diff=151971</id>
		<title>Performance/load performance implement</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=Performance/load_performance_implement&amp;diff=151971"/>
		<updated>2009-12-07T03:23:29Z</updated>

		<summary type="html">&lt;p&gt;Zengliangjun: moved Performance/Odf document load performance increase feasibility analysis/Implement to Performance/Odf document load performance implement:&amp;amp;#32;Description of odf document load performance&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Implement is in &amp;#039;xmloff&amp;#039;, and each element processing is divided into several steps:&lt;br /&gt;
&lt;br /&gt;
        1 )processElement() : Process element&lt;br /&gt;
                2) _startElement() : Start element&lt;br /&gt;
                3) processSubContexts() : Sub elements process, &lt;br /&gt;
                                  if this element is a parent element.&lt;br /&gt;
                                  Every sub element processing will be divided into three steps.&lt;br /&gt;
                        4)_createChildContext(): Create Sub Context &lt;br /&gt;
                        5)_processSubContext(): Process sub element &lt;br /&gt;
                        7)_collectSubContext(): Collect the sub element&amp;#039;s result data &lt;br /&gt;
                9) _characters(): Process element&amp;#039;s content&lt;br /&gt;
                10)_endElement(): End element&lt;br /&gt;
        11)commit(): commit the result data to parent element&lt;br /&gt;
&lt;br /&gt;
And every parent element has three solutions to process sub elements:&lt;br /&gt;
&lt;br /&gt;
a) Serial processing&lt;br /&gt;
&lt;br /&gt;
b) Parallel processing&lt;br /&gt;
&lt;br /&gt;
c) delayed processing&lt;br /&gt;
&lt;br /&gt;
In the &amp;#039;content.xml&amp;#039; stream,&lt;br /&gt;
&lt;br /&gt;
it is &amp;#039;c)&amp;#039; the top parent element of display element.&lt;br /&gt;
&lt;br /&gt;
In the &amp;#039;settings.xml/styles.xml&amp;#039; stream,&lt;br /&gt;
&lt;br /&gt;
it is &amp;#039;b)&amp;#039; the top parent element of setting/style element.&lt;br /&gt;
&lt;br /&gt;
And &amp;#039;meta.xml&amp;#039;, &amp;#039;settings.xml&amp;#039;, &amp;#039;styles.xml&amp;#039;, &amp;#039;content.xml&amp;#039; It is serial processing.&lt;br /&gt;
&lt;br /&gt;
[[Image:Odfcontext Process Implement.jpg]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Performance]]&lt;/div&gt;</summary>
		<author><name>Zengliangjun</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=Performance/load_performance_implement&amp;diff=135690</id>
		<title>Performance/load performance implement</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=Performance/load_performance_implement&amp;diff=135690"/>
		<updated>2009-07-22T07:46:38Z</updated>

		<summary type="html">&lt;p&gt;Zengliangjun: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Implement is in &amp;#039;xmloff&amp;#039;, and each element processing is divided into several steps:&lt;br /&gt;
&lt;br /&gt;
        1 )processElement() : Process element&lt;br /&gt;
                2) _startElement() : Start element&lt;br /&gt;
                3) processSubContexts() : Sub elements process, &lt;br /&gt;
                                  if this element is a parent element.&lt;br /&gt;
                                  Every sub element processing will be divided into three steps.&lt;br /&gt;
                        4)_createChildContext(): Create Sub Context &lt;br /&gt;
                        5)_processSubContext(): Process sub element &lt;br /&gt;
                        7)_collectSubContext(): Collect the sub element&amp;#039;s result data &lt;br /&gt;
                9) _characters(): Process element&amp;#039;s content&lt;br /&gt;
                10)_endElement(): End element&lt;br /&gt;
        11)commit(): commit the result data to parent element&lt;br /&gt;
&lt;br /&gt;
And every parent element has three solutions to process sub elements:&lt;br /&gt;
&lt;br /&gt;
a) Serial processing&lt;br /&gt;
&lt;br /&gt;
b) Parallel processing&lt;br /&gt;
&lt;br /&gt;
c) delayed processing&lt;br /&gt;
&lt;br /&gt;
In the &amp;#039;content.xml&amp;#039; stream,&lt;br /&gt;
&lt;br /&gt;
it is &amp;#039;c)&amp;#039; the top parent element of display element.&lt;br /&gt;
&lt;br /&gt;
In the &amp;#039;settings.xml/styles.xml&amp;#039; stream,&lt;br /&gt;
&lt;br /&gt;
it is &amp;#039;b)&amp;#039; the top parent element of setting/style element.&lt;br /&gt;
&lt;br /&gt;
And &amp;#039;meta.xml&amp;#039;, &amp;#039;settings.xml&amp;#039;, &amp;#039;styles.xml&amp;#039;, &amp;#039;content.xml&amp;#039; It is serial processing.&lt;br /&gt;
&lt;br /&gt;
[[Image:Odfcontext Process Implement.jpg]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Performance]]&lt;/div&gt;</summary>
		<author><name>Zengliangjun</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=Performance/load_performance_implement&amp;diff=135689</id>
		<title>Performance/load performance implement</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=Performance/load_performance_implement&amp;diff=135689"/>
		<updated>2009-07-22T07:45:24Z</updated>

		<summary type="html">&lt;p&gt;Zengliangjun: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Implement is in &amp;#039;xmloff&amp;#039;, and each element processing is divided into several steps:&lt;br /&gt;
&lt;br /&gt;
        1 )processElement() : Process element&lt;br /&gt;
                2) _startElement() : Start element&lt;br /&gt;
                3) processSubContexts() : Sub elements process, &lt;br /&gt;
                                  if this element is a parent element.&lt;br /&gt;
                                  Every sub element processing will be divided into three steps.&lt;br /&gt;
                        4)_createChildContext(): Create Sub Context &lt;br /&gt;
                        5)_processSubContext(): Process sub element &lt;br /&gt;
                        7)_collectSubContext(): Collect the sub element&amp;#039;s result data &lt;br /&gt;
                9) _characters(): Process element&amp;#039;s content&lt;br /&gt;
                10)_endElement(): End element&lt;br /&gt;
&lt;br /&gt;
        11)commit(): commit the result data to parent element&lt;br /&gt;
&lt;br /&gt;
And every parent element has three solutions to process sub elements:&lt;br /&gt;
&lt;br /&gt;
a) Serial processing&lt;br /&gt;
&lt;br /&gt;
b) Parallel processing&lt;br /&gt;
&lt;br /&gt;
c) delayed processing&lt;br /&gt;
&lt;br /&gt;
In the &amp;#039;content.xml&amp;#039; stream,&lt;br /&gt;
&lt;br /&gt;
it is &amp;#039;c)&amp;#039; the top parent element of display element.&lt;br /&gt;
&lt;br /&gt;
In the &amp;#039;settings.xml/styles.xml&amp;#039; stream,&lt;br /&gt;
&lt;br /&gt;
it is &amp;#039;b)&amp;#039; the top parent element of setting/style element.&lt;br /&gt;
&lt;br /&gt;
And &amp;#039;meta.xml&amp;#039;, &amp;#039;settings.xml&amp;#039;, &amp;#039;styles.xml&amp;#039;, &amp;#039;content.xml&amp;#039; It is serial processing.&lt;br /&gt;
&lt;br /&gt;
[[Image:Odfcontext Process Implement.jpg]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Performance]]&lt;/div&gt;</summary>
		<author><name>Zengliangjun</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=Performance/load_performance_implement&amp;diff=135688</id>
		<title>Performance/load performance implement</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=Performance/load_performance_implement&amp;diff=135688"/>
		<updated>2009-07-22T07:42:10Z</updated>

		<summary type="html">&lt;p&gt;Zengliangjun: (checkpoint save)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Implement is in &amp;#039;xmloff&amp;#039;, and each element processing is divided into several steps:&lt;br /&gt;
&lt;br /&gt;
        1 )processElement() : Process element&lt;br /&gt;
                2) _startElement() : Start element&lt;br /&gt;
                3) processSubContexts() : Sub elements process, &lt;br /&gt;
                                  if this element is a parent element.&lt;br /&gt;
                                  Every sub element processing will be divided into three steps.&lt;br /&gt;
                        4)_createChildContext(): Create Sub Context &lt;br /&gt;
                        5)_processSubContext(): Process sub element &lt;br /&gt;
                        7)_collectSubContext(): Collect the sub element&amp;#039;s result data &lt;br /&gt;
                9) _characters(): Process element&amp;#039;s content&lt;br /&gt;
                10)_endElement(): End element&lt;br /&gt;
&lt;br /&gt;
        11)commit(): commit the result data to parent element&lt;br /&gt;
&lt;br /&gt;
And every parent element has three solutions to process sub elements:&lt;br /&gt;
&lt;br /&gt;
a) Serial processing&lt;br /&gt;
&lt;br /&gt;
b) Parallel processing&lt;br /&gt;
&lt;br /&gt;
c) delayed processing&lt;br /&gt;
&lt;br /&gt;
In the &amp;#039;content.xml&amp;#039; stream,&lt;br /&gt;
&lt;br /&gt;
it is &amp;#039;c)&amp;#039; the top parent element of display element.&lt;br /&gt;
&lt;br /&gt;
In the &amp;#039;settings.xml/styles.xml&amp;#039; stream,&lt;br /&gt;
&lt;br /&gt;
it is &amp;#039;b)&amp;#039; the top parent element of setting/style element.&lt;br /&gt;
&lt;br /&gt;
And &amp;#039;meta.xml&amp;#039;, &amp;#039;settings.xml&amp;#039;, &amp;#039;styles.xml&amp;#039;, &amp;#039;content.xml&amp;#039; It is serial processing.&lt;br /&gt;
&lt;br /&gt;
[[Image:Odfcontext Process Implement.jpg]]&lt;/div&gt;</summary>
		<author><name>Zengliangjun</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=File:Odfcontext_Process_Implement.jpg&amp;diff=135685</id>
		<title>File:Odfcontext Process Implement.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=File:Odfcontext_Process_Implement.jpg&amp;diff=135685"/>
		<updated>2009-07-22T07:36:31Z</updated>

		<summary type="html">&lt;p&gt;Zengliangjun: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Zengliangjun</name></author>
	</entry>
</feed>