incubator-ooo-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From ksch...@apache.org
Subject svn commit: r1206870 [3/6] - in /incubator/ooo/ooo-site/trunk/content/tools/performance: ./ linux/ solaris/ windows/
Date Sun, 27 Nov 2011 22:23:19 GMT
Propchange: incubator/ooo/ooo-site/trunk/content/tools/performance/binary_diffs_52_60.html
------------------------------------------------------------------------------
    svn:eol-style = native

Added: incubator/ooo/ooo-site/trunk/content/tools/performance/chart_10000_elem.jpg
URL: http://svn.apache.org/viewvc/incubator/ooo/ooo-site/trunk/content/tools/performance/chart_10000_elem.jpg?rev=1206870&view=auto
==============================================================================
Binary file - no diff available.

Propchange: incubator/ooo/ooo-site/trunk/content/tools/performance/chart_10000_elem.jpg
------------------------------------------------------------------------------
    svn:mime-type = image/jpeg

Added: incubator/ooo/ooo-site/trunk/content/tools/performance/chart_1000_elem.jpg
URL: http://svn.apache.org/viewvc/incubator/ooo/ooo-site/trunk/content/tools/performance/chart_1000_elem.jpg?rev=1206870&view=auto
==============================================================================
Binary file - no diff available.

Propchange: incubator/ooo/ooo-site/trunk/content/tools/performance/chart_1000_elem.jpg
------------------------------------------------------------------------------
    svn:mime-type = image/jpeg

Added: incubator/ooo/ooo-site/trunk/content/tools/performance/chart_100_elem.jpg
URL: http://svn.apache.org/viewvc/incubator/ooo/ooo-site/trunk/content/tools/performance/chart_100_elem.jpg?rev=1206870&view=auto
==============================================================================
Binary file - no diff available.

Propchange: incubator/ooo/ooo-site/trunk/content/tools/performance/chart_100_elem.jpg
------------------------------------------------------------------------------
    svn:mime-type = image/jpeg

Added: incubator/ooo/ooo-site/trunk/content/tools/performance/chart_10_elem.jpg
URL: http://svn.apache.org/viewvc/incubator/ooo/ooo-site/trunk/content/tools/performance/chart_10_elem.jpg?rev=1206870&view=auto
==============================================================================
Binary file - no diff available.

Propchange: incubator/ooo/ooo-site/trunk/content/tools/performance/chart_10_elem.jpg
------------------------------------------------------------------------------
    svn:mime-type = image/jpeg

Added: incubator/ooo/ooo-site/trunk/content/tools/performance/index.html
URL: http://svn.apache.org/viewvc/incubator/ooo/ooo-site/trunk/content/tools/performance/index.html?rev=1206870&view=auto
==============================================================================
--- incubator/ooo/ooo-site/trunk/content/tools/performance/index.html (added)
+++ incubator/ooo/ooo-site/trunk/content/tools/performance/index.html Sun Nov 27 22:23:15 2011
@@ -0,0 +1,288 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<HTML>
+<HEAD>
+	<META HTTP-EQUIV="CONTENT-TYPE" CONTENT="text/html; charset=windows-1252">
+	<TITLE></TITLE>
+	<META NAME="GENERATOR" CONTENT="StarOffice 8  (Win32)">
+	<META NAME="AUTHOR" CONTENT="Martin Hollmichel">
+	<META NAME="CREATED" CONTENT="20010419;16101287">
+	<META NAME="CHANGEDBY" CONTENT="Malte Timmermann">
+	<META NAME="CHANGED" CONTENT="20051103;15365971">
+</HEAD>
+<BODY LANG="en-US" DIR="LTR">
+<H2>OpenOffice.org Performance Tuning 
+</H2>
+<P>This page contains a general list of areas that affect how fast
+the OpenOffice.org application runs. A brief description of the
+current and/or recent work is provided for each area. For application
+specific optimization possibilities see the project pages (e.g. for
+the <A HREF="http://sw.openoffice.org/drafts/optimization.html">Writer</A>).</P>
+<P>An overview of  current and planned performance improvements can
+be found <A HREF="./performance-activities-overview.html">here</A>.</P>
+<P>In addition, a description of the profiling tools for each
+platform and how to use them within the OpenOffice.org build is
+provided. 
+</P>
+<P>If you would like to share any performance tuning work that you
+are currently doing or have already done, please send your suggested
+updates to for this page to <A HREF="mailto:martin.hollmichel@sun.com">martin.hollmichel@sun.com</A>.
+</P>
+<H3>OpenOffice.org performance issues</H3>
+<P>Currently, OpenOffice.org application performance issues can be
+grouped into the following two categories: 
+</P>
+<OL>
+	<LI><P><A NAME="StartupTime"></A><B>Startup Time of the
+	Openoffice.org Application</B> 
+	</P>
+	<P>There are several items that can influence the startup of an
+	application:</P>
+	<UL>
+		<LI><P>Size of Application Binaries</P>
+		<P>As the size of the OpenOffice.org application binaries
+		increases, startup time increases. This increased startup time is
+		due to the time required by the operating system to physically read
+		the application executable and its shared libraries into memory.
+		The increase in startup time is particularly noticeable when the
+		OpenOffice.org binaries reside on mounted disk since the binaries
+		need to be streamed across the network between the machine with the
+		exported disk and the local machine where OpenOffice.org is being
+		run.</P>
+		<P>There are several ways to reduce the size of the OpenOffice.org
+		application binaries and, in turn, decrease startup time <B>without
+		changing any of the OpenOffice.org source code</B>:</P>
+		<UL>
+			<LI><P>Reducing the amount of code that is loaded at startup</P>
+			<P>Ideally, all of the symbols necessary for startup would be put
+			in separate binaries from the symbols used after startup. Also,
+			the runtime linker would load only the startup binaries and would
+			defer loading of the remaining binaries until after startup. 
+			</P>
+			<P>Currently, Sun engineers in Cupertino, California are working
+			on moving the existing Solaris Sparc build to be closer to the
+			ideal. <A HREF="solaris/index.html#StartupTime">Click here</A> for
+			a detailed description of this effort.</P>
+			<LI><P><A NAME="Stripping"></A>Stripping the application binaries</P>
+			<P>On all Unix platforms, the symbol table within each executable
+			and shared library adds considerable size (approximately 40 MB on
+			the Linux Intel and Solaris Sparc platforms). Since the symbol
+			table is not needed at runtime, the <CODE>strip</CODE> command can
+			be used to eliminate these extra size from the OpenOffice.org
+			binaries on most, if not all, of the Unix platforms.</P>
+			<P>Automatic stripping of Unix binaries is now available in the
+			installation set creation process (see the <A HREF="#ToDos">To
+			Do's</A> section).</P>
+			<P>You can enable stripping of the OpenOffice.org binaries on all
+			Unix platforms except Mac OS X by executing the following command
+			after you have completely built OpenOffice.org:</P>
+			<P><CODE>cd $SRC_ROOT/instsetoo ; dmake &quot;strip=true&quot;</CODE></P>
+			<P>You can then install OpenOffice.org as you normally would using
+			the following command:</P>
+			<P><CODE>cd $SRC_ROOT/instsetoo/$INPATH/normal ; ./setup</CODE></P>
+			<P><B>Important note:</B> The above commands will not strip
+			binaries for builds before SRC634. So, if you want to enable
+			stripping in an earlier build, you must execute the following
+			commands before executing the above commands: 
+			</P>
+			<P><CODE>cd $SRC_ROOT/scptools/source/linker</CODE><BR><CODE>cvs
+			update -A lzip.cxx scpzip.cxx</CODE><BR><CODE>cd
+			$SRC_ROOT/scptools ; dmake</CODE><BR><CODE>cd
+			$SRC_ROOT/instsetoo/util</CODE><BR><CODE>cvs update -A makefile.mk</CODE></P>
+		</UL>
+		<LI><P>Unused Code</P>
+		<P>Removing any unused code would reduce the size of the
+		OpenOffice.org binaries which, in turn, would reduce startup time.
+		Since almost all the OpenOffice.org binaries are shared libraries,
+		analysis of each exported symbol could potentially determine which
+		local symbols within each shared library not used and such symbols
+		could be eliminated from the code. However, no work has been done
+		in this area so the amount of unused code within the OpenOffice.org
+		is currently unknown.</P>
+		<P>Anyone who attempts such analysis should double check that their
+		analysis includes any invocations of unexported symbols. Such
+		invocations are frequently executed by the UNO runtime via v-table
+		lookups and less frequently by the direct symbol lookup within the
+		osl_getSymbol function in the sal/inc/osl/module.h source file.</P>
+		<LI><P><A HREF="working_set.html">Working Set</A></P>
+		<LI><P>Memory Footprint</P>
+		<LI><P>Hot Spots</P>
+	</UL>
+	<LI><P><B>Post-Startup Speed of the Openoffice.org Application</B></P>
+	<P>Nearly all of the issues listed in the <A HREF="#StartupTime">Startup
+	Time</A> section are equally applicable to post-startup speed of the
+	OpenOffice.org application.</P>
+	<P>In addition, the following items also affect post-startup speed: 
+	</P>
+	<UL>
+		<LI><P>Symbol Size Optimizations</P>
+		<P>Potentially, the use of certain compiler or linker options can
+		increase or decrease the size of binaries. For example, enabling
+		exceptions on Solaris Sparc increases code size by a noticeable
+		amount. 
+		</P>
+		<P>Currently, Sun engineers in Cupertino, California are looking
+		for compiler and linker options that can decrease code size. Since
+		this is a difficult task to do given the large total size of the
+		OpenOffice.org binaries, Sun engineers are analyzing the <A HREF="binary_diffs_52_60.html">increases
+		in binary sizes</A> on Linux Intel and Solaris Sparc from
+		StarOffice 5.2 to a recent build. Hopefully, by analyzing the
+		changes in the list and/or sizes of the symbols in the binaries
+		with the largest growth, specific types of compiler or linker
+		options (and maybe even coding constructs) that cause symbol size
+		to increase or decrease will be found. Stay tuned for updates.</P>
+		<LI><P>Save/Load Optimization of OpenOffice.org 6.0 files (XML) <A HREF="http://xml.openoffice.org/optimization.html">see
+		more</A></P>
+		<P>Now the new file format of OpenOffice.org is feature complete
+		and so it is time to analyse the performance.</P>
+		<P>Now we have to find the own problems of the applications. The
+		performance of Save/Load OpenOffice.org 6.0 files has to be checked
+		in every OpenOffice.org application.</P>
+	</UL>
+</OL>
+<P>Here you can find some platform specific data for <A HREF="windows/index.html">Windows</A>,
+<A HREF="linux/index.html">Linux</A> and <A HREF="solaris/index.html">Solaris</A>.</P>
+<H3>Tools</H3>
+<UL>
+	<LI><P>Profiling</P>
+	<P>By default, the OpenOffice.org build is <B>not</B> built for
+	profiling. You can enable profiling by rebuilding each module that
+	you want to profile by executing the following command:</P>
+	<P><CODE>cd $SRC_ROOT/(module)</CODE> <CODE>dmake -u &quot;profile=true&quot;</CODE>
+		</P>
+	<P>Sun engineers in have had some experience in using the profiler
+	<CODE>gprof</CODE> on Solaris. <A HREF="solaris/index.html#UsingProfiler">Click
+	here</A> for a detailed instructions for using <CODE>gprof</CODE> on
+	Solaris.</P>
+	<LI><P>Profiling II</P>
+	<P>There is another environment which provides profiling data on a
+	more abstracted level then the known (commercial) tools. The goal is
+	to have a fully automatic process that generates, processes, and
+	analyzes the profiling data. Please see <A HREF="../profiling/index.html">this</A>
+	page contains further information.</P>
+	<LI><P>Optimized Link Processes (usage of mapfiles, minimizing
+	exports, etc.)</P>
+</UL>
+<H3>Links</H3>
+<P>Here is a list of links that may provide some useful information. 
+</P>
+<UL>
+	<LI><P STYLE="margin-bottom: 0cm">A discussion on how to tune Linux
+	libraries. <A HREF="http://people.redhat.com/drepper/dsohowto.pdf">How
+	to write shared libraries</A> OpenOffice.org use a lot of shared
+	libraries so this is worth a look. 
+	</P>
+	<LI><P><A HREF="list_classes.html">List Classes</A> Discusses
+	performance problems with OOo's internal List class 
+	</P>
+</UL>
+<H3><A NAME="ToDos"></A>To Do's</H3>
+<CENTER>
+	<TABLE WIDTH=100% CELLPADDING=4 CELLSPACING=2 BGCOLOR="#ffffff">
+		<TR>
+			<TD COLSPAN=3 BGCOLOR="#00315a">
+				<P ALIGN=CENTER><FONT COLOR="#ffffff"><B>To Do's</B></FONT></P>
+			</TD>
+		</TR>
+		<TR>
+			<TD BGCOLOR="#99ccff">
+				<P ALIGN=CENTER><B>Task</B></P>
+			</TD>
+			<TD BGCOLOR="#99ccff">
+				<P ALIGN=CENTER><B>Status</B></P>
+			</TD>
+			<TD BGCOLOR="#99ccff">
+				<P ALIGN=CENTER><B>Responsible Engineer</B></P>
+			</TD>
+		</TR>
+		<TR>
+			<TD>
+				<P><FONT SIZE=2>Implement optional stripping of binaries on Unix
+				platforms during creation of the OpenOffice.org installation set:
+				</FONT>
+				</P>
+				<UL>
+					<LI><P STYLE="margin-bottom: 0cm"><FONT SIZE=2>Add new -S option
+					to lzip and scpzip build tools and implement stripping of
+					binaries on Unix platforms if the -S option is used </FONT>
+					</P>
+					<LI><P STYLE="margin-bottom: 0cm"><FONT SIZE=2>Modify makefile
+					in instsetoo module to invoke lzip with the -S option if dmake
+					is run with &quot;strip=true&quot; </FONT>
+					</P>
+					<LI><P><FONT SIZE=2>Update OpenOffice.org build instructions to
+					reflect this new packaging option </FONT>
+					</P>
+				</UL>
+			</TD>
+			<TD>
+				<P ALIGN=CENTER><FONT SIZE=2>Implemented</FONT></P>
+			</TD>
+			<TD>
+				<P ALIGN=CENTER><A HREF="mailto:patrick.luby@sun.com"><FONT SIZE=2>Patrick
+				Luby</FONT></A></P>
+			</TD>
+		</TR>
+		<TR>
+			<TD>
+				<P><FONT SIZE=2>Investigate reducing startup time for Solaris by
+				deferring the loading of large files: </FONT>
+				</P>
+				<UL>
+					<LI><P STYLE="margin-bottom: 0cm"><FONT SIZE=2>Find out how to
+					split the shared libraries that have only a few symbols invoked
+					during startup. </FONT>
+					</P>
+					<LI><P STYLE="margin-bottom: 0cm"><FONT SIZE=2>Find out how to
+					do lazy linking and if it works the way we understand the linker
+					supposed to work. </FONT>
+					</P>
+					<LI><P STYLE="margin-bottom: 0cm"><FONT SIZE=2>Test the above to
+					see how much reduction in startup time can be achieved, if any. </FONT>
+					</P>
+					<LI><P><FONT SIZE=2>Examine the large data files and see how
+					their loading can be deferred after startup. </FONT>
+					</P>
+				</UL>
+			</TD>
+			<TD>
+				<P ALIGN=CENTER><FONT SIZE=2>In Progress</FONT></P>
+			</TD>
+			<TD>
+				<P ALIGN=CENTER><A HREF="mailto:ping.liao@sun.com"><FONT SIZE=2>Ping
+				Liao</FONT></A></P>
+			</TD>
+		</TR>
+		<TR>
+			<TD>
+				<P><FONT SIZE=2>Investigate reducing the save and load time of
+				OpenOffice.org 6.0 files (XML): </FONT>
+				</P>
+				<UL>
+					<LI><P STYLE="margin-bottom: 0cm"><FONT SIZE=2>Find where it
+					needs how much time. </FONT>
+					</P>
+					<LI><P STYLE="margin-bottom: 0cm"><FONT SIZE=2>Think about where
+					and what to optimize. </FONT>
+					</P>
+					<LI><P><FONT SIZE=2>Test the above to see how much reduction in
+					save and load time can be achieved, if any. </FONT>
+					</P>
+				</UL>
+			</TD>
+			<TD>
+				<P ALIGN=CENTER><FONT SIZE=2>In Progress</FONT></P>
+			</TD>
+			<TD>
+				<P ALIGN=CENTER><FONT SIZE=2><A HREF="mailto:Sascha.Ballach@germany.sun.com">Sascha
+				Ballach (Spreadsheet)</A><BR><A HREF="mailto:Daniel.Vogelheim@germany.sun.com">Daniel
+				Vogelheim (Text)</A><BR><A HREF="mailto:Bjoern.Milcke@germany.sun.com">Bj&ouml;rn
+				Milcke (Chart)</A><BR><A HREF="mailto:Christian.Lippka@germany.sun.com">Christian
+				Lippka (Draw/Impress)</A></FONT></P>
+			</TD>
+		</TR>
+	</TABLE>
+</CENTER>
+<P><BR><BR>
+</P>
+</BODY>
+</HTML>
\ No newline at end of file

Propchange: incubator/ooo/ooo-site/trunk/content/tools/performance/index.html
------------------------------------------------------------------------------
    svn:eol-style = native

Added: incubator/ooo/ooo-site/trunk/content/tools/performance/linux/comparison.html
URL: http://svn.apache.org/viewvc/incubator/ooo/ooo-site/trunk/content/tools/performance/linux/comparison.html?rev=1206870&view=auto
==============================================================================
--- incubator/ooo/ooo-site/trunk/content/tools/performance/linux/comparison.html (added)
+++ incubator/ooo/ooo-site/trunk/content/tools/performance/linux/comparison.html Sun Nov 27 22:23:15 2011
@@ -0,0 +1,397 @@
+<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
+<html>
+<head>
+   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+   <meta http-equiv="CONTENT-TYPE" content="text/html; charset=iso-8859-1">
+   <meta name="GENERATOR" content="Mozilla/4.76 [en] (X11; U; Linux 2.4.0-4GB i686) [Netscape]">
+   <meta name="CREATED" content="20010528;15372900">
+   <meta name="CHANGEDBY" content="Jens-Heiner Rechtien">
+   <meta name="CHANGED" content="20010528;15591300">
+<style>
+	<!-- 
+	BODY { font-family: "Helvetica"; font-size: 2 }
+	 -->
+</style>
+</head>
+<body text="#000000" bgcolor="#FFFFFF">
+
+<h1>
+Comparison gcc-2.95.2 vs gcc-2.95.3 library size (stripped)</h1>
+
+<table BORDER CELLSPACING=0 COLS=4 FRAME="VOID" RULES="GROUPS" >
+<caption><COLGROUP><COL WIDTH=128><COL WIDTH=77><COL WIDTH=77><COL WIDTH=77></COLGROUP><TBODY>
+<br></TBODY></caption>
+
+<tr>
+<td ALIGN=LEFT WIDTH="128" HEIGHT="19">library</td>
+
+<td ALIGN=LEFT WIDTH="77" HEIGHT="19">gcc-2.95.2</td>
+
+<td ALIGN=LEFT WIDTH="77" HEIGHT="19">gcc-2.95.3</td>
+
+<td ALIGN=LEFT WIDTH="77" HEIGHT="19" SDNUM="1033;0;0.00%">change</td>
+</tr>
+
+<tr>
+<td ALIGN=LEFT WIDTH="128" HEIGHT="18"></td>
+
+<td ALIGN=LEFT WIDTH="77" HEIGHT="18"></td>
+
+<td ALIGN=LEFT WIDTH="77" HEIGHT="18"></td>
+
+<td ALIGN=LEFT WIDTH="77" HEIGHT="18" SDNUM="1033;0;0.00%"></td>
+</tr>
+
+<tr>
+<td ALIGN=LEFT WIDTH="128" HEIGHT="18">libsw633li.so</td>
+
+<td ALIGN=RIGHT WIDTH="77" HEIGHT="18" SDVAL="16327732" SDNUM="1033;">16327732</td>
+
+<td ALIGN=RIGHT WIDTH="77" HEIGHT="18" SDVAL="14053828" SDNUM="1033;">14053828</td>
+
+<td ALIGN=RIGHT WIDTH="77" HEIGHT="18" SDVAL="-0.13926637208401" SDNUM="1033;0;0.00%">-13.93%</td>
+</tr>
+
+<tr>
+<td ALIGN=LEFT WIDTH="128" HEIGHT="18">libtl633li.so</td>
+
+<td ALIGN=RIGHT WIDTH="77" HEIGHT="18" SDVAL="632888" SDNUM="1033;">632888</td>
+
+<td ALIGN=RIGHT WIDTH="77" HEIGHT="18" SDVAL="630392" SDNUM="1033;">630392</td>
+
+<td ALIGN=RIGHT WIDTH="77" HEIGHT="18" SDVAL="-0.00394382576380023" SDNUM="1033;0;0.00%">-0.39%</td>
+</tr>
+
+<tr>
+<td ALIGN=LEFT WIDTH="128" HEIGHT="18">libcfgmgr2.so</td>
+
+<td ALIGN=RIGHT WIDTH="77" HEIGHT="18" SDVAL="4383812" SDNUM="1033;">4383812</td>
+
+<td ALIGN=RIGHT WIDTH="77" HEIGHT="18" SDVAL="4210384" SDNUM="1033;">4210384</td>
+
+<td ALIGN=RIGHT WIDTH="77" HEIGHT="18" SDVAL="-0.039561003072212" SDNUM="1033;0;0.00%">-3.96%</td>
+</tr>
+
+<tr>
+<td ALIGN=LEFT WIDTH="128" HEIGHT="18">libvcl633li.so</td>
+
+<td ALIGN=RIGHT WIDTH="77" HEIGHT="18" SDVAL="2911384" SDNUM="1033;">2911384</td>
+
+<td ALIGN=RIGHT WIDTH="77" HEIGHT="18" SDVAL="2868760" SDNUM="1033;">2868760</td>
+
+<td ALIGN=RIGHT WIDTH="77" HEIGHT="18" SDVAL="-0.0146404596576748" SDNUM="1033;0;0.00%">-1.46%</td>
+</tr>
+
+<tr>
+<td ALIGN=LEFT WIDTH="128" HEIGHT="18"></td>
+
+<td ALIGN=LEFT WIDTH="77" HEIGHT="18"></td>
+
+<td ALIGN=LEFT WIDTH="77" HEIGHT="18"></td>
+
+<td ALIGN=LEFT WIDTH="77" HEIGHT="18" SDNUM="1033;0;0.00%"></td>
+</tr>
+
+<tr>
+<td ALIGN=LEFT WIDTH="128" HEIGHT="19">stoc:</td>
+
+<td ALIGN=LEFT WIDTH="77" HEIGHT="19"></td>
+
+<td ALIGN=LEFT WIDTH="77" HEIGHT="19"></td>
+
+<td ALIGN=LEFT WIDTH="77" HEIGHT="19" SDNUM="1033;0;0.00%"></td>
+</tr>
+
+<tr>
+<td ALIGN=LEFT WIDTH="128" HEIGHT="19">libcorefl.so</td>
+
+<td ALIGN=RIGHT WIDTH="77" HEIGHT="19" SDVAL="363540" SDNUM="1033;">363540</td>
+
+<td ALIGN=RIGHT WIDTH="77" HEIGHT="19" SDVAL="351168" SDNUM="1033;">351168</td>
+
+<td ALIGN=RIGHT WIDTH="77" HEIGHT="19" SDVAL="-0.0340320184848985" SDNUM="1033;0;0.00%">-3.40%</td>
+</tr>
+
+<tr>
+<td ALIGN=LEFT WIDTH="128" HEIGHT="19">libcpld.so</td>
+
+<td ALIGN=RIGHT WIDTH="77" HEIGHT="19" SDVAL="47444" SDNUM="1033;">47444</td>
+
+<td ALIGN=RIGHT WIDTH="77" HEIGHT="19" SDVAL="46784" SDNUM="1033;">46784</td>
+
+<td ALIGN=RIGHT WIDTH="77" HEIGHT="19" SDVAL="-0.013911137340865" SDNUM="1033;0;0.00%">-1.39%</td>
+</tr>
+
+<tr>
+<td ALIGN=LEFT WIDTH="128" HEIGHT="19">libdefreg.so</td>
+
+<td ALIGN=RIGHT WIDTH="77" HEIGHT="19" SDVAL="128884" SDNUM="1033;">128884</td>
+
+<td ALIGN=RIGHT WIDTH="77" HEIGHT="19" SDVAL="127968" SDNUM="1033;">127968</td>
+
+<td ALIGN=RIGHT WIDTH="77" HEIGHT="19" SDVAL="-0.00710716613388784" SDNUM="1033;0;0.00%">-0.71%</td>
+</tr>
+
+<tr>
+<td ALIGN=LEFT WIDTH="128" HEIGHT="19">libimpreg.so</td>
+
+<td ALIGN=RIGHT WIDTH="77" HEIGHT="19" SDVAL="112276" SDNUM="1033;">112276</td>
+
+<td ALIGN=RIGHT WIDTH="77" HEIGHT="19" SDVAL="110496" SDNUM="1033;">110496</td>
+
+<td ALIGN=RIGHT WIDTH="77" HEIGHT="19" SDVAL="-0.0158537888774092" SDNUM="1033;0;0.00%">-1.59%</td>
+</tr>
+
+<tr>
+<td ALIGN=LEFT WIDTH="128" HEIGHT="19">libinsp.so</td>
+
+<td ALIGN=RIGHT WIDTH="77" HEIGHT="19" SDVAL="239380" SDNUM="1033;">239380</td>
+
+<td ALIGN=RIGHT WIDTH="77" HEIGHT="19" SDVAL="235808" SDNUM="1033;">235808</td>
+
+<td ALIGN=RIGHT WIDTH="77" HEIGHT="19" SDVAL="-0.0149218815272788" SDNUM="1033;0;0.00%">-1.49%</td>
+</tr>
+
+<tr>
+<td ALIGN=LEFT WIDTH="128" HEIGHT="19">libinv.so</td>
+
+<td ALIGN=RIGHT WIDTH="77" HEIGHT="19" SDVAL="124740" SDNUM="1033;">124740</td>
+
+<td ALIGN=RIGHT WIDTH="77" HEIGHT="19" SDVAL="122152" SDNUM="1033;">122152</td>
+
+<td ALIGN=RIGHT WIDTH="77" HEIGHT="19" SDVAL="-0.0207471540804874" SDNUM="1033;0;0.00%">-2.07%</td>
+</tr>
+
+<tr>
+<td ALIGN=LEFT WIDTH="128" HEIGHT="19">libinvadp.so</td>
+
+<td ALIGN=RIGHT WIDTH="77" HEIGHT="19" SDVAL="56564" SDNUM="1033;">56564</td>
+
+<td ALIGN=RIGHT WIDTH="77" HEIGHT="19" SDVAL="54624" SDNUM="1033;">54624</td>
+
+<td ALIGN=RIGHT WIDTH="77" HEIGHT="19" SDVAL="-0.034297432996252" SDNUM="1033;0;0.00%">-3.43%</td>
+</tr>
+
+<tr>
+<td ALIGN=LEFT WIDTH="128" HEIGHT="19">libjavaloader.so</td>
+
+<td ALIGN=RIGHT WIDTH="77" HEIGHT="19" SDVAL="57332" SDNUM="1033;">57332</td>
+
+<td ALIGN=RIGHT WIDTH="77" HEIGHT="19" SDVAL="56096" SDNUM="1033;">56096</td>
+
+<td ALIGN=RIGHT WIDTH="77" HEIGHT="19" SDVAL="-0.0215586408986255" SDNUM="1033;0;0.00%">-2.16%</td>
+</tr>
+
+<tr>
+<td ALIGN=LEFT WIDTH="128" HEIGHT="19">libjen.so</td>
+
+<td ALIGN=RIGHT WIDTH="77" HEIGHT="19" SDVAL="115340" SDNUM="1033;">115340</td>
+
+<td ALIGN=RIGHT WIDTH="77" HEIGHT="19" SDVAL="114268" SDNUM="1033;">114268</td>
+
+<td ALIGN=RIGHT WIDTH="77" HEIGHT="19" SDVAL="-0.00929426044737298" SDNUM="1033;0;0.00%">-0.93%</td>
+</tr>
+
+<tr>
+<td ALIGN=LEFT WIDTH="128" HEIGHT="19">libnamingservice.so</td>
+
+<td ALIGN=RIGHT WIDTH="77" HEIGHT="19" SDVAL="47508" SDNUM="1033;">47508</td>
+
+<td ALIGN=RIGHT WIDTH="77" HEIGHT="19" SDVAL="45600" SDNUM="1033;">45600</td>
+
+<td ALIGN=RIGHT WIDTH="77" HEIGHT="19" SDVAL="-0.0401616569840869" SDNUM="1033;0;0.00%">-4.02%</td>
+</tr>
+
+<tr>
+<td ALIGN=LEFT WIDTH="128" HEIGHT="19">libproxyfac.so</td>
+
+<td ALIGN=RIGHT WIDTH="77" HEIGHT="19" SDVAL="49204" SDNUM="1033;">49204</td>
+
+<td ALIGN=RIGHT WIDTH="77" HEIGHT="19" SDVAL="48000" SDNUM="1033;">48000</td>
+
+<td ALIGN=RIGHT WIDTH="77" HEIGHT="19" SDVAL="-0.0244695553207056" SDNUM="1033;0;0.00%">-2.45%</td>
+</tr>
+
+<tr>
+<td ALIGN=LEFT WIDTH="128" HEIGHT="19">librdbtdp.so</td>
+
+<td ALIGN=RIGHT WIDTH="77" HEIGHT="19" SDVAL="223164" SDNUM="1033;">223164</td>
+
+<td ALIGN=RIGHT WIDTH="77" HEIGHT="19" SDVAL="210248" SDNUM="1033;">210248</td>
+
+<td ALIGN=RIGHT WIDTH="77" HEIGHT="19" SDVAL="-0.0578767184671363" SDNUM="1033;0;0.00%">-5.79%</td>
+</tr>
+
+<tr>
+<td ALIGN=LEFT WIDTH="128" HEIGHT="19">libsimreg.so</td>
+
+<td ALIGN=RIGHT WIDTH="77" HEIGHT="19" SDVAL="119924" SDNUM="1033;">119924</td>
+
+<td ALIGN=RIGHT WIDTH="77" HEIGHT="19" SDVAL="119008" SDNUM="1033;">119008</td>
+
+<td ALIGN=RIGHT WIDTH="77" HEIGHT="19" SDVAL="-0.00763817084153297" SDNUM="1033;0;0.00%">-0.76%</td>
+</tr>
+
+<tr>
+<td ALIGN=LEFT WIDTH="128" HEIGHT="19">libsmgr.so</td>
+
+<td ALIGN=RIGHT WIDTH="77" HEIGHT="19" SDVAL="199780" SDNUM="1033;">199780</td>
+
+<td ALIGN=RIGHT WIDTH="77" HEIGHT="19" SDVAL="197500" SDNUM="1033;">197500</td>
+
+<td ALIGN=RIGHT WIDTH="77" HEIGHT="19" SDVAL="-0.0114125538091901" SDNUM="1033;0;0.00%">-1.14%</td>
+</tr>
+
+<tr>
+<td ALIGN=LEFT WIDTH="128" HEIGHT="19">libtcv.so</td>
+
+<td ALIGN=RIGHT WIDTH="77" HEIGHT="19" SDVAL="71912" SDNUM="1033;">71912</td>
+
+<td ALIGN=RIGHT WIDTH="77" HEIGHT="19" SDVAL="70260" SDNUM="1033;">70260</td>
+
+<td ALIGN=RIGHT WIDTH="77" HEIGHT="19" SDVAL="-0.0229725219712983" SDNUM="1033;0;0.00%">-2.30%</td>
+</tr>
+
+<tr>
+<td ALIGN=LEFT WIDTH="128" HEIGHT="19">libtdmgr.so</td>
+
+<td ALIGN=RIGHT WIDTH="77" HEIGHT="19" SDVAL="178324" SDNUM="1033;">178324</td>
+
+<td ALIGN=RIGHT WIDTH="77" HEIGHT="19" SDVAL="176864" SDNUM="1033;">176864</td>
+
+<td ALIGN=RIGHT WIDTH="77" HEIGHT="19" SDVAL="-0.00818734438437899" SDNUM="1033;0;0.00%">-0.82%</td>
+</tr>
+
+<tr>
+<td ALIGN=LEFT WIDTH="128" HEIGHT="18"></td>
+
+<td ALIGN=LEFT WIDTH="77" HEIGHT="18"></td>
+
+<td ALIGN=LEFT WIDTH="77" HEIGHT="18"></td>
+
+<td ALIGN=LEFT WIDTH="77" HEIGHT="18" SDNUM="1033;0;0.00%"></td>
+</tr>
+
+<tr>
+<td ALIGN=LEFT WIDTH="128" HEIGHT="18">connectivity:</td>
+
+<td ALIGN=LEFT WIDTH="77" HEIGHT="18"></td>
+
+<td ALIGN=LEFT WIDTH="77" HEIGHT="18"></td>
+
+<td ALIGN=LEFT WIDTH="77" HEIGHT="18" SDNUM="1033;0;0.00%"></td>
+</tr>
+
+<tr>
+<td ALIGN=LEFT WIDTH="128" HEIGHT="18">libadabas2.so</td>
+
+<td ALIGN=RIGHT WIDTH="77" HEIGHT="18" SDVAL="984724" SDNUM="1033;">984724</td>
+
+<td ALIGN=RIGHT WIDTH="77" HEIGHT="18" SDVAL="814292" SDNUM="1033;">814292</td>
+
+<td ALIGN=RIGHT WIDTH="77" HEIGHT="18" SDVAL="-0.173075907563947" SDNUM="1033;0;0.00%">-17.31%</td>
+</tr>
+
+<tr>
+<td ALIGN=LEFT WIDTH="128" HEIGHT="18">libcalc633li.so</td>
+
+<td ALIGN=RIGHT WIDTH="77" HEIGHT="18" SDVAL="608220" SDNUM="1033;">608220</td>
+
+<td ALIGN=RIGHT WIDTH="77" HEIGHT="18" SDVAL="488892" SDNUM="1033;">488892</td>
+
+<td ALIGN=RIGHT WIDTH="77" HEIGHT="18" SDVAL="-0.196192167307882" SDNUM="1033;0;0.00%">-19.62%</td>
+</tr>
+
+<tr>
+<td ALIGN=LEFT WIDTH="128" HEIGHT="18">libdbase633li.so</td>
+
+<td ALIGN=RIGHT WIDTH="77" HEIGHT="18" SDVAL="918836" SDNUM="1033;">918836</td>
+
+<td ALIGN=RIGHT WIDTH="77" HEIGHT="18" SDVAL="742804" SDNUM="1033;">742804</td>
+
+<td ALIGN=RIGHT WIDTH="77" HEIGHT="18" SDVAL="-0.191581522709167" SDNUM="1033;0;0.00%">-19.16%</td>
+</tr>
+
+<tr>
+<td ALIGN=LEFT WIDTH="128" HEIGHT="18">libdbpool2.so</td>
+
+<td ALIGN=RIGHT WIDTH="77" HEIGHT="18" SDVAL="167336" SDNUM="1033;">167336</td>
+
+<td ALIGN=RIGHT WIDTH="77" HEIGHT="18" SDVAL="158280" SDNUM="1033;">158280</td>
+
+<td ALIGN=RIGHT WIDTH="77" HEIGHT="18" SDVAL="-0.0541186594635942" SDNUM="1033;0;0.00%">-5.41%</td>
+</tr>
+
+<tr>
+<td ALIGN=LEFT WIDTH="128" HEIGHT="18">libdbtools2.so</td>
+
+<td ALIGN=RIGHT WIDTH="77" HEIGHT="18" SDVAL="1826568" SDNUM="1033;">1826568</td>
+
+<td ALIGN=RIGHT WIDTH="77" HEIGHT="18" SDVAL="1734632" SDNUM="1033;">1734632</td>
+
+<td ALIGN=RIGHT WIDTH="77" HEIGHT="18" SDVAL="-0.0503326457049505" SDNUM="1033;0;0.00%">-5.03%</td>
+</tr>
+
+<tr>
+<td ALIGN=LEFT WIDTH="128" HEIGHT="18">libfile633li.so</td>
+
+<td ALIGN=RIGHT WIDTH="77" HEIGHT="18" SDVAL="1127892" SDNUM="1033;">1127892</td>
+
+<td ALIGN=RIGHT WIDTH="77" HEIGHT="18" SDVAL="1018452" SDNUM="1033;">1018452</td>
+
+<td ALIGN=RIGHT WIDTH="77" HEIGHT="18" SDVAL="-0.0970305667563916" SDNUM="1033;0;0.00%">-9.70%</td>
+</tr>
+
+<tr>
+<td ALIGN=LEFT WIDTH="128" HEIGHT="18">libflat633li.so</td>
+
+<td ALIGN=RIGHT WIDTH="77" HEIGHT="18" SDVAL="575484" SDNUM="1033;">575484</td>
+
+<td ALIGN=RIGHT WIDTH="77" HEIGHT="18" SDVAL="461564" SDNUM="1033;">461564</td>
+
+<td ALIGN=RIGHT WIDTH="77" HEIGHT="18" SDVAL="-0.197955112566118" SDNUM="1033;0;0.00%">-19.80%</td>
+</tr>
+
+<tr>
+<td ALIGN=LEFT WIDTH="128" HEIGHT="18">libjdbc2.so</td>
+
+<td ALIGN=RIGHT WIDTH="77" HEIGHT="18" SDVAL="1030616" SDNUM="1033;">1030616</td>
+
+<td ALIGN=RIGHT WIDTH="77" HEIGHT="18" SDVAL="991320" SDNUM="1033;">991320</td>
+
+<td ALIGN=RIGHT WIDTH="77" HEIGHT="18" SDVAL="-0.0381286531550063" SDNUM="1033;0;0.00%">-3.81%</td>
+</tr>
+
+<tr>
+<td ALIGN=LEFT WIDTH="128" HEIGHT="18">libodbc2.so</td>
+
+<td ALIGN=RIGHT WIDTH="77" HEIGHT="18" SDVAL="56436" SDNUM="1033;">56436</td>
+
+<td ALIGN=RIGHT WIDTH="77" HEIGHT="18" SDVAL="48340" SDNUM="1033;">48340</td>
+
+<td ALIGN=RIGHT WIDTH="77" HEIGHT="18" SDVAL="-0.143454532567864" SDNUM="1033;0;0.00%">-14.35%</td>
+</tr>
+
+<tr>
+<td ALIGN=LEFT WIDTH="128" HEIGHT="18">libodbcbase2.so</td>
+
+<td ALIGN=RIGHT WIDTH="77" HEIGHT="18" SDVAL="1003376" SDNUM="1033;">1003376</td>
+
+<td ALIGN=RIGHT WIDTH="77" HEIGHT="18" SDVAL="965232" SDNUM="1033;">965232</td>
+
+<td ALIGN=RIGHT WIDTH="77" HEIGHT="18" SDVAL="-0.038015659134761" SDNUM="1033;0;0.00%">-3.80%</td>
+</tr>
+
+<tr>
+<td ALIGN=LEFT WIDTH="128" HEIGHT="18">libsdbc2.so</td>
+
+<td ALIGN=RIGHT WIDTH="77" HEIGHT="18" SDVAL="87060" SDNUM="1033;">87060</td>
+
+<td ALIGN=RIGHT WIDTH="77" HEIGHT="18" SDVAL="83092" SDNUM="1033;">83092</td>
+
+<td ALIGN=RIGHT WIDTH="77" HEIGHT="18" SDVAL="-0.0455777624626694" SDNUM="1033;0;0.00%">-4.56%</td>
+</tr>
+</table>
+<!-- ************************************************************************** -->
+</body>
+</html>

Propchange: incubator/ooo/ooo-site/trunk/content/tools/performance/linux/comparison.html
------------------------------------------------------------------------------
    svn:eol-style = native

Added: incubator/ooo/ooo-site/trunk/content/tools/performance/linux/filesizes.html
URL: http://svn.apache.org/viewvc/incubator/ooo/ooo-site/trunk/content/tools/performance/linux/filesizes.html?rev=1206870&view=auto
==============================================================================
--- incubator/ooo/ooo-site/trunk/content/tools/performance/linux/filesizes.html (added)
+++ incubator/ooo/ooo-site/trunk/content/tools/performance/linux/filesizes.html Sun Nov 27 22:23:15 2011
@@ -0,0 +1,163 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
+<HTML>
+<HEAD>
+	<META HTTP-EQUIV="CONTENT-TYPE" CONTENT="text/html; charset=iso-8859-1">
+	<TITLE></TITLE>
+	<META NAME="GENERATOR" CONTENT="StarOffice/5.2 (Solaris Sparc)">
+	<META NAME="AUTHOR" CONTENT="Jens-Heiner Rechtien">
+	<META NAME="CREATED" CONTENT="20010528;19140800">
+	<META NAME="CHANGEDBY" CONTENT="Jens-Heiner Rechtien">
+	<META NAME="CHANGED" CONTENT="20010529;13214800">
+</HEAD>
+<BODY>
+<H1>Excessive shared libraries file sizes</H1>
+<P>Recent versions of OpenOffice/StarOffice exhibit an disturbing
+increase in shared library file size. This is especially true for the
+Unix platforms, topped by whopping 73% increase from SRC569 to SRC624
+on Linux.</P>
+<H2>Reasons</H2>
+<P>The biggest increase in code size especially on GCC based
+platforms is probably due to the increased use of exceptions. Since
+abandoning exceptions is out of question we can't do much about this
+currently. It's interesting to note that the use of exception
+specifications which should in principle help reducing the costs of
+exception handling has a pretty averse effect on GCC platforms.
+Exception specifications increase the code size of callees by a
+significant amount (up to 300 bytes for GCC/Linux/X86 per method!),
+without having a noticeable effect on the code size of the caller.
+Even the empty exception specification throw() applied to a leave
+(non calling) function incurs this cost. This is clearly a very
+pronounced deficiency of GCC.</P>
+<H2>Solutions</H2>
+<OL>
+	<LI><P>Remove all exception specifications, especially on all inline
+	functions. This seems to be the only possible way to reduce the code
+	size of gcc-2.95.2 build libraries significantly. <BR><BR>Some
+	preliminary evaluation of gcc-3.0 indicates that the gcc developers
+	noticed this problem. Gcc-3.0 offers a switch which allows the
+	compiler to not to enforce the exception specifications.
+	Additionally the compiler is much more able in recognizing that
+	some functions will never throw and produces way smaller code in
+	this case even in the case of honored exception specifications. It
+	might be very worthwhile to switch to gcc-3.0 when it's ready.
+	Gcc-3.0 is scheduled to be available at the end of the 1Q 2001. The
+	downside of Gcc-3.0 will be that it's in no way binary compatible to
+	gcc-2.95.2</P>
+	<P>Update 2000/05/28: gcc-2.95.3 (bugfix release) seems to produce
+	more compact code in some cases. It has not yet been investigated if
+	this improvement is related to exception specifications. Anyway,
+	improvements from 0.4% up to 20% can be observed. Preliminary tests
+	have been done on SRC633, details can be found <A HREF="comparison.html">here</A>.</P>
+	<LI><P>Export minimized shared libraries could be smaller on
+	GCC/GNU-binutils platforms. The GNU ld has a deficiency regarding
+	minimizing the .dynstr section of a shared library if version map
+	are used to minimize the exports from the library. All it's does is
+	to remove the references of the &quot;localized&quot; strings from
+	the .dyntab, but it never deletes the strings itself from the
+	.dynstr section. Neither does &quot;strip&quot;. <BR><BR>The Mozilla
+	developers noticed this, too. They invented a small tool called
+	&quot;elf-gc-dynstr&quot; which removes the unused strings and than
+	relocates the references to the remaining stuff in the .dyntab
+	section. Some tests showed that this operation has no side effects
+	and does reduce the overall size of the *.so files by about 2.5% to
+	3.5%. 
+	</P>
+	<TABLE WIDTH=957 BORDER=1 CELLPADDING=5 CELLSPACING=4>
+		<COL WIDTH=303>
+		<COL WIDTH=306>
+		<COL WIDTH=300>
+		<THEAD>
+			<TR VALIGN=TOP>
+				<TH WIDTH=303>
+					<P>size of all stripped *.so in kBytes</P>
+				</TH>
+				<TH WIDTH=306>
+					<P>SRC569</P>
+				</TH>
+				<TH WIDTH=300>
+					<P>SRC624</P>
+				</TH>
+			</TR>
+		</THEAD>
+		<TBODY>
+			<TR>
+				<TD WIDTH=303 VALIGN=TOP>
+					<P>without elf-gc-dynstr treatment</P>
+				</TD>
+				<TD WIDTH=306 VALIGN=BOTTOM SDVAL="116898" SDNUM="1033;">
+					<P ALIGN=CENTER>116898</P>
+				</TD>
+				<TD WIDTH=300 VALIGN=BOTTOM SDVAL="202844" SDNUM="1033;">
+					<P ALIGN=CENTER>202844</P>
+				</TD>
+			</TR>
+			<TR>
+				<TD WIDTH=303 VALIGN=TOP>
+					<P>with elf-gc-dynstr treatment</P>
+				</TD>
+				<TD WIDTH=306 VALIGN=BOTTOM SDVAL="114409" SDNUM="1033;">
+					<P ALIGN=CENTER>114409</P>
+				</TD>
+				<TD WIDTH=300 VALIGN=BOTTOM SDVAL="195756" SDNUM="1033;">
+					<P ALIGN=CENTER>195756</P>
+				</TD>
+			</TR>
+		</TBODY>
+	</TABLE>
+	<P>The more export minimized shared libraries ( components! ) we
+	have the more will be the overall savings.<BR><BR>We use
+	elf-gc-dynstr on unxlngi3 since SRC625 b</P>
+	<LI><P>Patched GCC called &quot;FrankenGCC&quot;. Another offshot of
+	Mozilla, can be found <A HREF="http://www.mozilla.org/projects/footprint/frankengcc.html">here</A>.
+	<BR><BR>GCC tends to the create a vtable even in the case of a class
+	with only pure virtual methods. Another problem is that certain
+	inlined static constructs end up in every object file but not in the
+	link-once section. Thus ld fails to combine these constructs at
+	shared library link time.<BR><BR>I tried the patch but didn't see
+	any improvement in code size. The opposite was true, the file size
+	did even increase.<BR><BR><BR>
+	</P>
+</OL>
+<DL>
+	<DL>
+		<DD>
+		<TABLE WIDTH=100% BORDER=1 CELLPADDING=5 CELLSPACING=4>
+			<COL WIDTH=85*>
+			<COL WIDTH=85*>
+			<COL WIDTH=85*>
+			<THEAD>
+				<TR VALIGN=TOP>
+					<TH WIDTH=33%>
+						<P>SRC624 stripped libcfgmgr2.so</P>
+					</TH>
+					<TH WIDTH=33%>
+						<P>gcc-2.95.2</P>
+					</TH>
+					<TH WIDTH=33%>
+						<P>frankengcc-2.95.2</P>
+					</TH>
+				</TR>
+			</THEAD>
+			<TBODY>
+				<TR>
+					<TD WIDTH=33% VALIGN=TOP>
+						<P>library size in kBytes</P>
+					</TD>
+					<TD WIDTH=33% VALIGN=BOTTOM SDVAL="6084924" SDNUM="1033;">
+						<P ALIGN=CENTER>6084924</P>
+					</TD>
+					<TD WIDTH=33% VALIGN=BOTTOM SDVAL="6422940" SDNUM="1033;">
+						<P ALIGN=CENTER>6422940</P>
+					</TD>
+				</TR>
+			</TBODY>
+		</TABLE>
+	</DL>
+</DL>
+<P><BR><BR>
+</P>
+<P>Author: <A HREF="mailto:Jens-Heiner.Rechtien@germany.sun.com?subject=Excessive file sizes">Jens-Heiner
+Rechtien</A></P>
+<P>Last changed: 16.03.2001</P>
+</BODY>
+</HTML>

Propchange: incubator/ooo/ooo-site/trunk/content/tools/performance/linux/filesizes.html
------------------------------------------------------------------------------
    svn:eol-style = native

Added: incubator/ooo/ooo-site/trunk/content/tools/performance/linux/index.html
URL: http://svn.apache.org/viewvc/incubator/ooo/ooo-site/trunk/content/tools/performance/linux/index.html?rev=1206870&view=auto
==============================================================================
--- incubator/ooo/ooo-site/trunk/content/tools/performance/linux/index.html (added)
+++ incubator/ooo/ooo-site/trunk/content/tools/performance/linux/index.html Sun Nov 27 22:23:15 2011
@@ -0,0 +1,107 @@
+<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
+<html>
+<head>
+   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+   <meta http-equiv="CONTENT-TYPE" content="text/html; charset=iso-8859-1">
+   <meta name="GENERATOR" content="Mozilla/4.76 [en] (X11; U; Linux 2.4.0-4GB i686) [Netscape]">
+   <meta name="AUTHOR" content="Martin Hollmichel">
+   <meta name="CREATED" content="20010510;10315656">
+   <meta name="CHANGEDBY" content="Martin Hollmichel">
+   <meta name="CHANGED" content="20010510;16190600">
+</head>
+<body>
+
+<h2>
+Linux (x86) Performance Issues</h2>
+
+<h3>
+Code size</h3>
+In comparison to the Windows binaries it is remarkable that size of libraries
+is bigger. Some libraries are three times bigger than their windows versions.
+One main reason for that is that symbols are referenced by their names.
+In Windows symbols are directly referenced (within libraries) or by ordinal
+(external references).
+<p>One possible solution could be the introduction of aliases for symbol
+names. So the symbol names could be reduced to an optimal length and names
+with up to 4K characters could be avoided. If there was made heavy use
+of STL and namespaces very long symbols names are the result.
+<p>There are other reasons why gcc generated libraries are pretty huge,
+see also some <a href="filesizes.html">sizing experiments</a> we've done
+on SRC624.
+<h3>
+Startup time</h3>
+See also: <a href="http://bugzilla.mozilla.org/show_bug.cgi?id=46775">http://bugzilla.mozilla.org/show_bug.cgi?id=46775</a>
+.
+<h2>
+Performance Data:</h2>
+
+<table BORDER CELLSPACING=3 CELLPADDING=4 WIDTH="100%" >
+<caption><COL WIDTH=85*><COL WIDTH=85*><COL WIDTH=85*><THEAD>
+<br></THEAD></caption>
+
+<tr VALIGN=TOP>
+<th WIDTH="33%">OpenOffice.org Version</th>
+
+<th WIDTH="33%">Startup (first start after installation)</th>
+
+<th WIDTH="33%">Memory footprint after start and late init</th>
+</tr>
+</table>
+
+<br>&nbsp;
+<br>&nbsp;
+<br>&nbsp;
+<table BORDER CELLSPACING=3 CELLPADDING=4 WIDTH="100%" >
+<caption><COL WIDTH=85*><COL WIDTH=85*><COL WIDTH=28*><COL WIDTH=28*><COL WIDTH=28*><THEAD>
+<br></THEAD><TBODY>
+<br></TBODY></caption>
+
+<tr VALIGN=TOP>
+<td WIDTH="33%"></td>
+
+<td WIDTH="33%"></td>
+
+<td WIDTH="11%">VmSize</td>
+
+<td WIDTH="11%">VmRss</td>
+
+<td WIDTH="11%">VmData</td>
+</tr>
+
+<tr VALIGN=TOP>
+<td WIDTH="33%">OpenOffice627</td>
+
+<td WIDTH="33%">65 sec</td>
+
+<td COLSPAN="3" WIDTH="33%">104768Kb/49676KB/16360kb</td>
+</tr>
+
+<tr VALIGN=TOP>
+<td WIDTH="33%"></td>
+
+<td WIDTH="33%"></td>
+
+<td COLSPAN="3" WIDTH="33%"></td>
+</tr>
+</table>
+
+<br>&nbsp;
+<br>&nbsp;
+<br>&nbsp;
+<br>&nbsp;
+<br>&nbsp;
+<br>&nbsp;
+<br>&nbsp;
+<br>&nbsp;
+<h3>
+Other references:</h3>
+Linking loader ld.so
+<a href="http://www.suse.de/~bastian/Export/linking.txt">http://www.suse.de/~bastian/Export/linking.txt</a>
+<br>&nbsp;
+<br>&nbsp;
+<br>&nbsp;
+<br>&nbsp;
+<br>&nbsp;
+<br>&nbsp;
+</body>
+</html>

Propchange: incubator/ooo/ooo-site/trunk/content/tools/performance/linux/index.html
------------------------------------------------------------------------------
    svn:eol-style = native

Added: incubator/ooo/ooo-site/trunk/content/tools/performance/list_classes.html
URL: http://svn.apache.org/viewvc/incubator/ooo/ooo-site/trunk/content/tools/performance/list_classes.html?rev=1206870&view=auto
==============================================================================
--- incubator/ooo/ooo-site/trunk/content/tools/performance/list_classes.html (added)
+++ incubator/ooo/ooo-site/trunk/content/tools/performance/list_classes.html Sun Nov 27 22:23:15 2011
@@ -0,0 +1,259 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
+<HTML>
+<HEAD>
+	<META HTTP-EQUIV="CONTENT-TYPE" CONTENT="text/html; charset=iso-8859-1">
+	<TITLE></TITLE>
+</HEAD>
+<BODY>
+<H2>Analysis of List class uses</H2>
+
+<P><STRONG>Summary</STRONG><P>
+<P>All code that uses OOo's List class (ie DECLARE_LIST(foo, OString)) should be converted to use std::vector or std::deque since these functions are more efficient, faster, and better understood.  Little work is required for this conversion as the functionality of List and std::vector/std::deque is pretty much the same.</P>
+
+<P>Results Spreadsheet: <A HREF="ListComparison.sxc">ListComparison.sxc</A></P>
+
+<P><strong>Problem</strong></P>
+<P>OOo uses its internal List class (see tools/inc/list.hxx) in a fair number of places.  This code was written originally in 1991/1992 and is probably pre-Standard Template Library.  Its usage is a bit arcane, and the STL implementations of various list variants are probably more understood and better implemented.  The Tools List class is implemented using C Macros, as such:</P>
+<PRE>DECLARE_LIST( list_class_name, list_class_type )</PRE>
+<P>After this statement, a class named "list_class_name" will exist, which stores objects of type "list_class_type".  The List class has a number of functions that perform operations such as removal of elements, insertion of elements, and arbitrary retrieval of elements.  However, this is a non-standard API (compared to the STL), and as we will see below, is not as efficient as certain STL classes.</P>
+
+<P><strong>Comparison of Classes</strong></P>
+<P>4 list classes were compared: OOo's Tools List class, and STLport's std::list, std::vector, and std::deque.  It is fairly trivial to convert instances of the Tools List class over to equivalent STL classes, yielding better performance for the operations OOo code most uses.</P>
+<P>Testing methodology was fairly informal, and the results of the speed tests are not absolute.  They should give a best-case scenario of the efficiency and speed of which each particular list class completes certain operations.  For each class, a small test program was run, which tested 5 operations 30 times each, for 10, 100, 1000, and 10000 list elements.  An average was then calculated and printed to stderr.  List elements were of type 'int'.</P>
+<OL>
+<LI>Creation of list with N elements
+<LI>Deletion of list with N elements
+<LI>Sequential removal of all elements, from Front (including dereference of iterator)
+<LI>Sequential removal of all elements, from Back (including dereference of iterator)
+<LI>Sequential iteration of all elements in the list, Front->Back
+</OL>
+<P>The test program was run 4 times, and the best average score from each of the operations from all 4 times was recorded as the final time.  I.E.: run once (30-run average for each of the 5 ops), enter times.  Run 3 more times and enter best time from any test for each of the 5 operations.</P>
+
+<P>
+<A HREF="stl-list.cxx">stl-list.cxx</A>&nbsp;&nbsp;
+<A HREF="stl-vector.cxx">stl-vector.cxx</A>&nbsp;&nbsp;
+<A HREF="stl-deque.cxx">stl-deque.cxx</A>&nbsp;&nbsp;
+<A HREF="ooo-list.cxx">ooo-list.cxx</A>
+</P><BR>
+
+<P><STRONG>Results</STRONG></P>
+<P><CENTER>
+<TABLE FRAME=VOID CELLSPACING=0 COLS=5 RULES=GROUPS BORDER=1>
+	<COLGROUP><COL WIDTH=148><COL WIDTH=86><COL WIDTH=86><COL WIDTH=86><COL WIDTH=86></COLGROUP>
+	<TBODY>
+		<TR>
+			<TD WIDTH=148 HEIGHT=16 ALIGN=LEFT>Operation</TD>
+			<TD WIDTH=86 ALIGN=LEFT>STL std::list</TD>
+			<TD WIDTH=86 ALIGN=LEFT>STL std::vector</TD>
+			<TD WIDTH=86 ALIGN=LEFT>STL std::deque</TD>
+			<TD WIDTH=86 ALIGN=LEFT>OOo List</TD>
+			<TD></TD>
+		</TR>
+	</TBODY>
+	<TBODY>
+		<TR>
+			<TD HEIGHT=16 ALIGN=LEFT>Create 10e</TD>
+			<TD ALIGN=RIGHT SDVAL="8" SDNUM="1033;">8</TD>
+			<TD ALIGN=RIGHT SDVAL="9" SDNUM="1033;">9</TD>
+			<TD ALIGN=RIGHT SDVAL="6" SDNUM="1033;">6</TD>
+			<TD ALIGN=RIGHT SDVAL="8" SDNUM="1033;">8</TD>
+			<TD ROWSPAN=5><A HREF="chart_10_elem.jpg">Chart</A></TD>
+		</TR>
+		<TR>
+			<TD HEIGHT=16 ALIGN=LEFT>Delete 10e</TD>
+			<TD ALIGN=RIGHT SDVAL="8" SDNUM="1033;">8</TD>
+			<TD ALIGN=RIGHT SDVAL="7" SDNUM="1033;">7</TD>
+			<TD ALIGN=RIGHT SDVAL="7" SDNUM="1033;">7</TD>
+			<TD ALIGN=RIGHT SDVAL="7" SDNUM="1033;">7</TD>
+		</TR>
+		<TR>
+			<TD HEIGHT=16 ALIGN=LEFT>Remove Front 10e</TD>
+			<TD ALIGN=RIGHT SDVAL="8" SDNUM="1033;">8</TD>
+			<TD ALIGN=RIGHT><BR></TD>
+			<TD ALIGN=RIGHT SDVAL="7" SDNUM="1033;">7</TD>
+			<TD ALIGN=RIGHT SDVAL="8" SDNUM="1033;">8</TD>
+		</TR>
+		<TR>
+			<TD HEIGHT=16 ALIGN=LEFT>Remove Back 10e</TD>
+			<TD ALIGN=RIGHT SDVAL="8" SDNUM="1033;">8</TD>
+			<TD ALIGN=RIGHT SDVAL="6" SDNUM="1033;">6</TD>
+			<TD ALIGN=RIGHT SDVAL="7" SDNUM="1033;">7</TD>
+			<TD ALIGN=RIGHT SDVAL="7" SDNUM="1033;">7</TD>
+		</TR>
+		<TR>
+			<TD HEIGHT=16 ALIGN=LEFT>Iteration 10e</TD>
+			<TD ALIGN=RIGHT SDVAL="7" SDNUM="1033;">7</TD>
+			<TD ALIGN=RIGHT SDVAL="7" SDNUM="1033;">7</TD>
+			<TD ALIGN=RIGHT SDVAL="7" SDNUM="1033;">7</TD>
+			<TD ALIGN=RIGHT SDVAL="7" SDNUM="1033;">7</TD>
+		</TR>
+		<TR>
+			<TD HEIGHT=16 ALIGN=LEFT><BR></TD>
+			<TD ALIGN=LEFT><BR></TD>
+			<TD ALIGN=LEFT><BR></TD>
+			<TD ALIGN=LEFT><BR></TD>
+			<TD ALIGN=LEFT><BR></TD>
+		</TR>
+		<TR>
+			<TD HEIGHT=16 ALIGN=LEFT>Create 100e</TD>
+			<TD ALIGN=RIGHT SDVAL="25" SDNUM="1033;">25</TD>
+			<TD ALIGN=RIGHT SDVAL="12" SDNUM="1033;">12</TD>
+			<TD ALIGN=RIGHT SDVAL="8" SDNUM="1033;">8</TD>
+			<TD ALIGN=RIGHT SDVAL="24" SDNUM="1033;">24</TD>
+			<TD ROWSPAN=5><A HREF="chart_100_elem.jpg">Chart</A></TD>
+		</TR>
+		<TR>
+			<TD HEIGHT=16 ALIGN=LEFT>Delete 100e</TD>
+			<TD ALIGN=RIGHT SDVAL="24" SDNUM="1033;">24</TD>
+			<TD ALIGN=RIGHT SDVAL="7" SDNUM="1033;">7</TD>
+			<TD ALIGN=RIGHT SDVAL="8" SDNUM="1033;">8</TD>
+			<TD ALIGN=RIGHT SDVAL="9" SDNUM="1033;">9</TD>
+		</TR>
+		<TR>
+			<TD HEIGHT=16 ALIGN=LEFT>Remove Front 100e</TD>
+			<TD ALIGN=RIGHT SDVAL="24" SDNUM="1033;">24</TD>
+			<TD ALIGN=RIGHT><BR></TD>
+			<TD ALIGN=RIGHT SDVAL="8" SDNUM="1033;">8</TD>
+			<TD ALIGN=RIGHT SDVAL="27" SDNUM="1033;">27</TD>
+		</TR>
+		<TR>
+			<TD HEIGHT=16 ALIGN=LEFT>Remove Back 100e</TD>
+			<TD ALIGN=RIGHT SDVAL="24" SDNUM="1033;">24</TD>
+			<TD ALIGN=RIGHT SDVAL="7" SDNUM="1033;">7</TD>
+			<TD ALIGN=RIGHT SDVAL="8" SDNUM="1033;">8</TD>
+			<TD ALIGN=RIGHT SDVAL="16" SDNUM="1033;">16</TD>
+		</TR>
+		<TR>
+			<TD HEIGHT=16 ALIGN=LEFT>Iteration 100e</TD>
+			<TD ALIGN=RIGHT SDVAL="7" SDNUM="1033;">7</TD>
+			<TD ALIGN=RIGHT SDVAL="7" SDNUM="1033;">7</TD>
+			<TD ALIGN=RIGHT SDVAL="7" SDNUM="1033;">7</TD>
+			<TD ALIGN=RIGHT SDVAL="7" SDNUM="1033;">7</TD>
+		</TR>
+		<TR>
+			<TD HEIGHT=16 ALIGN=LEFT><BR></TD>
+			<TD ALIGN=LEFT><BR></TD>
+			<TD ALIGN=LEFT><BR></TD>
+			<TD ALIGN=LEFT><BR></TD>
+			<TD ALIGN=LEFT><BR></TD>
+		</TR>
+		<TR>
+			<TD HEIGHT=16 ALIGN=LEFT>Create 1000e</TD>
+			<TD ALIGN=RIGHT SDVAL="192" SDNUM="1033;">192</TD>
+			<TD ALIGN=RIGHT SDVAL="19" SDNUM="1033;">19</TD>
+			<TD ALIGN=RIGHT SDVAL="20" SDNUM="1033;">20</TD>
+			<TD ALIGN=RIGHT SDVAL="179" SDNUM="1033;">179</TD>
+			<TD ROWSPAN=5><A HREF="chart_1000_elem.jpg">Chart</A></TD>
+		</TR>
+		<TR>
+			<TD HEIGHT=16 ALIGN=LEFT>Delete 1000e</TD>
+			<TD ALIGN=RIGHT SDVAL="159" SDNUM="1033;">159</TD>
+			<TD ALIGN=RIGHT SDVAL="8" SDNUM="1033;">8</TD>
+			<TD ALIGN=RIGHT SDVAL="12" SDNUM="1033;">12</TD>
+			<TD ALIGN=RIGHT SDVAL="9" SDNUM="1033;">9</TD>
+		</TR>
+		<TR>
+			<TD HEIGHT=16 ALIGN=LEFT>Remove Front 1000e</TD>
+			<TD ALIGN=RIGHT SDVAL="177" SDNUM="1033;">177</TD>
+			<TD ALIGN=RIGHT><BR></TD>
+			<TD ALIGN=RIGHT SDVAL="15" SDNUM="1033;">15</TD>
+			<TD ALIGN=RIGHT SDVAL="791" SDNUM="1033;">791</TD>
+		</TR>
+		<TR>
+			<TD HEIGHT=16 ALIGN=LEFT>Remove Back 1000e</TD>
+			<TD ALIGN=RIGHT SDVAL="180" SDNUM="1033;">180</TD>
+			<TD ALIGN=RIGHT SDVAL="7" SDNUM="1033;">7</TD>
+			<TD ALIGN=RIGHT SDVAL="14" SDNUM="1033;">14</TD>
+			<TD ALIGN=RIGHT SDVAL="111" SDNUM="1033;">111</TD>
+		</TR>
+		<TR>
+			<TD HEIGHT=16 ALIGN=LEFT>Iteration 1000e</TD>
+			<TD ALIGN=RIGHT SDVAL="11" SDNUM="1033;">11</TD>
+			<TD ALIGN=RIGHT SDVAL="7" SDNUM="1033;">7</TD>
+			<TD ALIGN=RIGHT SDVAL="9" SDNUM="1033;">9</TD>
+			<TD ALIGN=RIGHT SDVAL="7" SDNUM="1033;">7</TD>
+		</TR>
+		<TR>
+			<TD HEIGHT=16 ALIGN=LEFT><BR></TD>
+			<TD ALIGN=LEFT><BR></TD>
+			<TD ALIGN=LEFT><BR></TD>
+			<TD ALIGN=LEFT><BR></TD>
+			<TD ALIGN=LEFT><BR></TD>
+		</TR>
+		<TR>
+			<TD HEIGHT=16 ALIGN=LEFT>Create 10000e</TD>
+			<TD ALIGN=RIGHT SDVAL="1762" SDNUM="1033;">1762</TD>
+			<TD ALIGN=RIGHT SDVAL="231" SDNUM="1033;">231</TD>
+			<TD ALIGN=RIGHT SDVAL="126" SDNUM="1033;">126</TD>
+			<TD ALIGN=RIGHT SDVAL="1068" SDNUM="1033;">1068</TD>
+			<TD ROWSPAN=5><A HREF="chart_10000_elem.jpg">Chart</A></TD>
+		</TR>
+		<TR>
+			<TD HEIGHT=16 ALIGN=LEFT>Delete 10000e</TD>
+			<TD ALIGN=RIGHT SDVAL="1513" SDNUM="1033;">1513</TD>
+			<TD ALIGN=RIGHT SDVAL="22" SDNUM="1033;">22</TD>
+			<TD ALIGN=RIGHT SDVAL="56" SDNUM="1033;">56</TD>
+			<TD ALIGN=RIGHT SDVAL="12" SDNUM="1033;">12</TD>
+		</TR>
+		<TR>
+			<TD HEIGHT=16 ALIGN=LEFT>Remove Front 10000e</TD>
+			<TD ALIGN=RIGHT SDVAL="1711" SDNUM="1033;">1711</TD>
+			<TD ALIGN=RIGHT><BR></TD>
+			<TD ALIGN=RIGHT SDVAL="85" SDNUM="1033;">85</TD>
+			<TD ALIGN=RIGHT SDVAL="7975" SDNUM="1033;">7975</TD>
+		</TR>
+		<TR>
+			<TD HEIGHT=16 ALIGN=LEFT>Remove Back 10000e</TD>
+			<TD ALIGN=RIGHT SDVAL="1720" SDNUM="1033;">1720</TD>
+			<TD ALIGN=RIGHT SDVAL="13" SDNUM="1033;">13</TD>
+			<TD ALIGN=RIGHT SDVAL="82" SDNUM="1033;">82</TD>
+			<TD ALIGN=RIGHT SDVAL="1064" SDNUM="1033;">1064</TD>
+		</TR>
+		<TR>
+			<TD HEIGHT=16 ALIGN=LEFT>Iteration 10000e</TD>
+			<TD ALIGN=RIGHT SDVAL="57" SDNUM="1033;">57</TD>
+			<TD ALIGN=RIGHT SDVAL="13" SDNUM="1033;">13</TD>
+			<TD ALIGN=RIGHT SDVAL="28" SDNUM="1033;">28</TD>
+			<TD ALIGN=RIGHT SDVAL="13" SDNUM="1033;">13</TD>
+		</TR>
+	</TBODY>
+</TABLE><BR>
+NOTE: all times are in u-seconds<BR>
+</CENTER></P>
+<P><STRONG>Analysis</STRONG></P>
+<P>
+OOo List class: not the best choice for some operations.  In fact, it does horribly at removing items from the front of the list, and not quite so badly at removing items from the rear.  In fact, it was found that remove items from a loop as follows (which is done quite often in OOo) is even <I>worse</I>, by a factor of 10 or more:<BR>
+<PRE>
+	while(mpPageMasterInfoList->Count())
+		delete mpPageMasterInfoList->Remove(mpPageMasterInfoList->Count() - 1L);
+</PRE><BR>
+Using the Remove( N ) function is much slower than using the Remove() function.  Remove() simply removes the node pointed to by the current list pointer, which is set using Front(), Back(), Next(), and Prev().  Rewriting the code as such gains a factor of 10 speed increase, at least in this limited test case:<BR>
+<PRE>
+	while(mpPageMasterInfoList->Count())
+	{
+		mpPageMasterInfoList->Last();
+		delete mpPageMasterInfoList->Remove();
+	}
+</PRE><BR>
+In general though, the OOo list class performs poorly compared to the STL's std::vector and std::deque.
+</P><BR>
+<P>
+std::list: while faster than the OOo list class, it is not as ideal as std::vector or std::deque.
+</P><BR>
+<P>
+std::vector: while faster than the OOo list class and std::list, it is not as ideal as std::deque because it does not support head-removal (ie pop_front()).
+</P><BR>
+<P>
+std::deque: while not always the fastest class, it is generally in the same class as std::vector.  However, it supports head-removal and also random access to its elements.  It is therefore more versatile than std::vector and almost as fast.
+</P><BR>
+
+<P><STRONG>Recommendations</STRONG></P>
+<P>Code that uses the OOo List class should gradually be converted over to either std::deque or std::vector, whichever is appropriate for the situation.  This conversion yields the following benefits:<BR>
+<OL>
+<LI>Faster
+<LI>Better understood code and tradeoffs
+<LI>More recent code
+</OL>
+</P>
+</BODY>
+</HTML>

Propchange: incubator/ooo/ooo-site/trunk/content/tools/performance/list_classes.html
------------------------------------------------------------------------------
    svn:eol-style = native

Added: incubator/ooo/ooo-site/trunk/content/tools/performance/ooo-list.cxx
URL: http://svn.apache.org/viewvc/incubator/ooo/ooo-site/trunk/content/tools/performance/ooo-list.cxx?rev=1206870&view=auto
==============================================================================
--- incubator/ooo/ooo-site/trunk/content/tools/performance/ooo-list.cxx (added)
+++ incubator/ooo/ooo-site/trunk/content/tools/performance/ooo-list.cxx Sun Nov 27 22:23:15 2011
@@ -0,0 +1,172 @@
+#include <tools/list.hxx>
+#include <stdio.h>
+#include <sys/time.h>
+
+DECLARE_LIST( list_type, int );
+
+suseconds_t delete_list( list_type *list, int l_size, bool print )
+{
+	timeval	start;
+	timeval	end;
+
+	gettimeofday( &start, NULL );
+
+	delete list;
+
+	gettimeofday( &end, NULL );
+
+	if ( print )
+		fprintf( stderr, "List deletion of %d elements took:  %d s, %d us\n", l_size,
+			(end.tv_sec-start.tv_sec), (end.tv_usec-start.tv_usec) );
+
+	return( end.tv_usec-start.tv_usec );
+}
+
+suseconds_t new_list( int l_size, bool print, list_type **foo )
+{
+	int		i;
+	timeval	start;
+	timeval	end;
+
+	*foo = new list_type;
+
+	gettimeofday( &start, NULL );
+
+	for( i = 0; i < l_size; i++ )
+		 (*foo)->Insert( i, LIST_APPEND );
+
+	gettimeofday( &end, NULL );
+
+	if ( print )
+		fprintf( stderr, "List creation of %d elements took:  %d s, %d us\n", l_size,
+			(end.tv_sec-start.tv_sec), (end.tv_usec-start.tv_usec) );
+
+	return( end.tv_usec-start.tv_usec );
+}
+
+suseconds_t remove_elements( list_type *foo, bool front, bool print )
+{
+	timeval	start;
+	timeval	end;
+	int		l_size = foo->Count();
+
+	if ( front )
+	{
+		gettimeofday( &start, NULL );
+
+		
+		for( int i = 0; i < l_size; ++i )
+		{
+			foo->First();
+			foo->Remove();
+		}
+
+		gettimeofday( &end, NULL );
+	}
+	else
+	{
+		gettimeofday( &start, NULL );
+
+		for( int i = 0; i < l_size; ++i )
+		{
+			foo->Last();
+			foo->Remove();
+		}
+
+		gettimeofday( &end, NULL );
+	}
+
+	if ( print )
+		fprintf( stderr, "Removal of %d from %s elements took:  %d s, %d us\n", l_size, front ? "front" : "back",
+			(end.tv_sec-start.tv_sec), (end.tv_usec-start.tv_usec) );
+
+	delete foo;
+
+	return( end.tv_usec-start.tv_usec );
+}
+
+
+suseconds_t iterate_list( list_type *foo, bool print )
+{
+	timeval	start;
+	timeval	end;
+	int		count = foo->Count();
+
+	gettimeofday( &start, NULL );
+	
+	int i;
+	for( i = 0; i < count; ++i );
+	{
+		int m = foo->GetObject( i );
+	}
+
+	gettimeofday( &end, NULL );
+
+	if ( print )
+	fprintf( stderr, "Iteration of %d elements took:  %d s, %d us\n", count,
+		(end.tv_sec-start.tv_sec), (end.tv_usec-start.tv_usec) );
+
+	delete foo;
+
+	return( end.tv_usec-start.tv_usec );
+}
+
+void test_list( int l_size )
+{
+	list_type *foo;
+	double blah = 0;
+	double blah2;
+	int	i;
+
+	blah = 0;
+	blah2 = 0;
+	for ( i = 0; i < 30; i++ )
+	{
+		blah += new_list( l_size, false, &foo );
+		blah2 += delete_list( foo, l_size, false );
+	}
+	blah = blah / i;
+	blah2 = blah2 / i;
+	fprintf( stderr, "List creation of %d elements took:  %f us\n", l_size, blah );
+	fprintf( stderr, "List deletion of %d elements took:  %f us\n", l_size, blah2 );
+
+	blah = 0;
+	for ( i = 0; i < 30; i++ )
+	{
+		new_list( l_size, false, &foo );
+		blah += remove_elements( foo, true, false );
+	}
+	blah = blah / i;
+	fprintf( stderr, "Remove of %d elements from FRONT took:  %f us\n", l_size, blah );
+
+	blah = 0;
+	for ( i = 0; i < 30; i++ )
+	{
+		new_list( l_size, false, &foo );
+		blah += remove_elements( foo, false, false );
+	}
+	blah = blah / i;
+	fprintf( stderr, "Remove of %d elements from BACK took:  %f us\n", l_size, blah );
+
+	blah = 0;
+	for ( i = 0; i < 30; i++ )
+	{
+		new_list( l_size, false, &foo );
+		blah += iterate_list( foo, false );
+	}
+	blah = blah / i;
+	fprintf( stderr, "Iteration of %d elements took:  %f us\n", l_size, blah );
+
+	fprintf( stderr, "\n" );
+}
+
+
+int main( int argc, char *argv[] )
+{
+	test_list( 10 );
+	test_list( 100 );
+	test_list( 1000 );
+	test_list( 10000 );
+
+	return 0;
+}

Added: incubator/ooo/ooo-site/trunk/content/tools/performance/performance-activities-overview.html
URL: http://svn.apache.org/viewvc/incubator/ooo/ooo-site/trunk/content/tools/performance/performance-activities-overview.html?rev=1206870&view=auto
==============================================================================
--- incubator/ooo/ooo-site/trunk/content/tools/performance/performance-activities-overview.html (added)
+++ incubator/ooo/ooo-site/trunk/content/tools/performance/performance-activities-overview.html Sun Nov 27 22:23:15 2011
@@ -0,0 +1,547 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
+
+<HTML>
+<HEAD>
+	
+	<META HTTP-EQUIV="CONTENT-TYPE" CONTENT="text/html; charset=windows-1252">
+	<TITLE></TITLE>
+	<META NAME="GENERATOR" CONTENT="StarOffice 8  (Win32)">
+	<META NAME="AUTHOR" CONTENT="Niklas Nebel">
+	<META NAME="CREATED" CONTENT="20050712;11461500">
+	<META NAME="CHANGED" CONTENT="20051102;15071300">
+	
+	<STYLE>
+		<!-- 
+		BODY,DIV,TABLE,THEAD,TBODY,TFOOT,TR,TH,TD,P { font-family:"Albany"; font-size:x-small }
+		 -->
+	</STYLE>
+	
+</HEAD>
+
+<BODY TEXT="#000000">
+<TABLE FRAME=VOID CELLSPACING=0 COLS=4 RULES=GROUPS BORDER=1>
+	<COLGROUP><COL WIDTH=166><COL WIDTH=455><COL WIDTH=119><COL WIDTH=966></COLGROUP>
+	<TBODY>
+		<TR>
+			<TD COLSPAN=2 WIDTH=621 HEIGHT=24 ALIGN=LEFT VALIGN=MIDDLE BGCOLOR="#E6E6FF"><B><FONT SIZE=4>OpenOffice.org Performance Activities</FONT></B></TD>
+			<TD WIDTH=119 ALIGN=LEFT VALIGN=MIDDLE BGCOLOR="#E6E6FF"><FONT SIZE=2><BR></FONT></TD>
+			<TD WIDTH=966 ALIGN=LEFT><FONT SIZE=2><BR></FONT></TD>
+		</TR>
+		<TR>
+			<TD HEIGHT=20 ALIGN=LEFT><FONT SIZE=2><BR></FONT></TD>
+			<TD ALIGN=LEFT><FONT SIZE=2><BR></FONT></TD>
+			<TD ALIGN=LEFT><FONT SIZE=2><BR></FONT></TD>
+			<TD ALIGN=LEFT><FONT SIZE=2><BR></FONT></TD>
+		</TR>
+		<TR>
+			<TD COLSPAN=2 HEIGHT=21 ALIGN=LEFT><I><FONT SIZE=2>Last update: 2005-11-03, <A HREF="mailto:Malte.Timmermann@sun.com">Malte Timmermann</A></FONT></I></TD>
+			<TD ALIGN=LEFT><FONT SIZE=2><BR></FONT></TD>
+			<TD ALIGN=LEFT><FONT SIZE=2><BR></FONT></TD>
+		</TR>
+		<TR>
+			<TD HEIGHT=20 ALIGN=LEFT><FONT SIZE=2><BR></FONT></TD>
+			<TD ALIGN=LEFT><FONT SIZE=2><BR></FONT></TD>
+			<TD ALIGN=LEFT><FONT SIZE=2><BR></FONT></TD>
+			<TD ALIGN=LEFT><FONT SIZE=2><BR></FONT></TD>
+		</TR>
+		<TR>
+			<TD HEIGHT=21 ALIGN=LEFT><B><FONT SIZE=2>Area</FONT></B></TD>
+			<TD ALIGN=LEFT><B><FONT SIZE=2>Task</FONT></B></TD>
+			<TD ALIGN=LEFT><B><FONT SIZE=2>Status</FONT></B></TD>
+			<TD ALIGN=LEFT><B><FONT SIZE=2>Comment</FONT></B></TD>
+		</TR>
+		<TR>
+			<TD HEIGHT=20 ALIGN=LEFT><FONT SIZE=2><BR></FONT></TD>
+			<TD ALIGN=LEFT><FONT SIZE=2><BR></FONT></TD>
+			<TD ALIGN=LEFT><FONT SIZE=2><BR></FONT></TD>
+			<TD ALIGN=LEFT><FONT SIZE=2><BR></FONT></TD>
+		</TR>
+	</TBODY>
+	<TBODY>
+		<TR>
+			<TD HEIGHT=21 ALIGN=LEFT><FONT SIZE=2>Start-Up</FONT></TD>
+			<TD ALIGN=LEFT><FONT SIZE=2>Accessing Linguistic, first start after installation</FONT></TD>
+			<TD ALIGN=LEFT><FONT SIZE=2>DONE</FONT></TD>
+			<TD ALIGN=LEFT><FONT SIZE=2>Some linguistic is 'installed' on start-up, when found in office installation. Done: 8s =&gt; 1,5s</FONT></TD>
+		</TR>
+	</TBODY>
+	<TBODY>
+		<TR>
+			<TD HEIGHT=21 ALIGN=LEFT><FONT SIZE=2>Start-Up</FONT></TD>
+			<TD ALIGN=LEFT><FONT SIZE=2>Handling of configuration items</FONT></TD>
+			<TD ALIGN=LEFT><FONT SIZE=2>DONE</FONT></TD>
+			<TD ALIGN=LEFT><FONT SIZE=2>Some items are not used correctly (ref counting), so created more often than needed</FONT></TD>
+		</TR>
+	</TBODY>
+	<TBODY>
+		<TR>
+			<TD HEIGHT=21 ALIGN=LEFT><FONT SIZE=2>Start-Up</FONT></TD>
+			<TD ALIGN=LEFT><FONT SIZE=2>Recovery service, optimize filter detection</FONT></TD>
+			<TD ALIGN=LEFT><FONT SIZE=2>DONE</FONT></TD>
+			<TD ALIGN=LEFT><FONT SIZE=2>Not needed anymore, new configuration</FONT></TD>
+		</TR>
+	</TBODY>
+	<TBODY>
+		<TR>
+			<TD HEIGHT=21 ALIGN=LEFT><FONT SIZE=2>Start-Up</FONT></TD>
+			<TD ALIGN=LEFT><FONT SIZE=2>Change dynamic link sort order</FONT></TD>
+			<TD ALIGN=LEFT><FONT SIZE=2>STARTED</FONT></TD>
+			<TD ALIGN=LEFT><FONT SIZE=2>Might improve startup, Solaris only feature?</FONT></TD>
+		</TR>
+	</TBODY>
+	<TBODY>
+		<TR>
+			<TD HEIGHT=21 ALIGN=LEFT><FONT SIZE=2>Start-Up</FONT></TD>
+			<TD ALIGN=LEFT><FONT SIZE=2>Optimize Font List Creation</FONT></TD>
+			<TD ALIGN=LEFT><FONT SIZE=2>STARTED</FONT></TD>
+			<TD ALIGN=LEFT><FONT SIZE=2>A lot of things are done in start-up here...</FONT></TD>
+		</TR>
+	</TBODY>
+	<TBODY>
+		<TR>
+			<TD HEIGHT=21 ALIGN=LEFT><FONT SIZE=2>Start-Up</FONT></TD>
+			<TD ALIGN=LEFT><FONT SIZE=2>Evaluate usage of config items in start up</FONT></TD>
+			<TD ALIGN=LEFT><FONT SIZE=2>STARTED</FONT></TD>
+			<TD ALIGN=LEFT><FONT SIZE=2>Remove double caching? Unnecessary items created? FontConfigItems in VCL will be changed...</FONT></TD>
+		</TR>
+	</TBODY>
+	<TBODY>
+		<TR>
+			<TD HEIGHT=21 ALIGN=LEFT><FONT SIZE=2>Start-Up</FONT></TD>
+			<TD ALIGN=LEFT><FONT SIZE=2>Start-Up Pattern / Performance Linux/Solaris</FONT></TD>
+			<TD ALIGN=LEFT><FONT SIZE=2>STARTED</FONT></TD>
+			<TD ALIGN=LEFT><FONT SIZE=2>Proportion IO/Code/Wait?, LibraryLoader?</FONT></TD>
+		</TR>
+	</TBODY>
+	<TBODY>
+		<TR>
+			<TD HEIGHT=21 ALIGN=LEFT><FONT SIZE=2>Start-Up</FONT></TD>
+			<TD ALIGN=LEFT><FONT SIZE=2>Native Loader: Splashscreen faster, pipe communication faster</FONT></TD>
+			<TD ALIGN=LEFT><FONT SIZE=2>STARTED</FONT></TD>
+			<TD ALIGN=LEFT><FONT SIZE=2>Doesn't improve start-up much, but quick user feed back (splash screen ) and double clicking files in explorer opens them faster.</FONT></TD>
+		</TR>
+	</TBODY>
+	<TBODY>
+		<TR>
+			<TD HEIGHT=21 ALIGN=LEFT><FONT SIZE=2>Start-Up</FONT></TD>
+			<TD ALIGN=LEFT><FONT SIZE=2>Start-Up Pattern / Performance Windows</FONT></TD>
+			<TD ALIGN=LEFT><FONT SIZE=2>STARTED</FONT></TD>
+			<TD ALIGN=LEFT><FONT SIZE=2>Evaluate: Libraries, Files, IO, Code</FONT></TD>
+		</TR>
+	</TBODY>
+	<TBODY>
+		<TR>
+			<TD HEIGHT=21 ALIGN=LEFT><FONT SIZE=2>Start-Up</FONT></TD>
+			<TD ALIGN=LEFT><FONT SIZE=2>Rebase/Bind, check for gaps</FONT></TD>
+			<TD ALIGN=LEFT><FONT SIZE=2>PLANNED</FONT></TD>
+			<TD ALIGN=LEFT><FONT SIZE=2>Some Windows tooling</FONT></TD>
+		</TR>
+	</TBODY>
+	<TBODY>
+		<TR>
+			<TD HEIGHT=21 ALIGN=LEFT><FONT SIZE=2>Start-Up</FONT></TD>
+			<TD ALIGN=LEFT><FONT SIZE=2>Prelinc (Linux, Evaluation)</FONT></TD>
+			<TD ALIGN=LEFT><FONT SIZE=2>PLANNED</FONT></TD>
+			<TD ALIGN=LEFT><FONT SIZE=2>Evaluate effect of prelinc</FONT></TD>
+		</TR>
+	</TBODY>
+	<TBODY>
+		<TR>
+			<TD HEIGHT=21 ALIGN=LEFT><FONT SIZE=2>Start-Up, Load/Save</FONT></TD>
+			<TD ALIGN=LEFT><FONT SIZE=2>Buffered IO for OSL (Evaluation)</FONT></TD>
+			<TD ALIGN=LEFT><FONT SIZE=2>PLANNED</FONT></TD>
+			<TD ALIGN=LEFT><FONT SIZE=2>Some code might use OSL file functions directly, not buffered</FONT></TD>
+		</TR>
+	</TBODY>
+	<TBODY>
+		<TR>
+			<TD HEIGHT=21 ALIGN=LEFT><FONT SIZE=2>Start-Up</FONT></TD>
+			<TD ALIGN=LEFT><FONT SIZE=2>Optimize FontListConfigItem/FontSubstCongItem</FONT></TD>
+			<TD ALIGN=LEFT><FONT SIZE=2>PLANNED</FONT></TD>
+			<TD ALIGN=LEFT><FONT SIZE=2>Don't read all languages when not needed</FONT></TD>
+		</TR>
+	</TBODY>
+	<TBODY>
+		<TR>
+			<TD HEIGHT=21 ALIGN=LEFT><FONT SIZE=2>Start-Up</FONT></TD>
+			<TD ALIGN=LEFT><FONT SIZE=2>Precompiled image list for toolbars</FONT></TD>
+			<TD ALIGN=LEFT><FONT SIZE=2>PLANNED</FONT></TD>
+			<TD ALIGN=LEFT><FONT SIZE=2>Helps also size of user/config, Office on Server. Do in post process?</FONT></TD>
+		</TR>
+	</TBODY>
+	<TBODY>
+		<TR>
+			<TD HEIGHT=21 ALIGN=LEFT><FONT SIZE=2>Start-Up</FONT></TD>
+			<TD ALIGN=LEFT><FONT SIZE=2>Configuration, check for more improvements</FONT></TD>
+			<TD ALIGN=LEFT><FONT SIZE=2>PLANNED</FONT></TD>
+			<TD ALIGN=LEFT><FONT SIZE=2>Dirty flag and version stamp, instead of file stat? share/registry, share/unopackage</FONT></TD>
+		</TR>
+	</TBODY>
+	<TBODY>
+		<TR>
+			<TD HEIGHT=21 ALIGN=LEFT><FONT SIZE=2>Start-Up</FONT></TD>
+			<TD ALIGN=LEFT><FONT SIZE=2>Configuration, known possible improvements</FONT></TD>
+			<TD ALIGN=LEFT><FONT SIZE=2>PLANNED</FONT></TD>
+			<TD ALIGN=LEFT><FONT SIZE=2>See issue i52328</FONT></TD>
+		</TR>
+	</TBODY>
+	<TBODY>
+		<TR>
+			<TD HEIGHT=21 ALIGN=LEFT><FONT SIZE=2>Start-Up</FONT></TD>
+			<TD ALIGN=LEFT><FONT SIZE=2>Optimize Menu Implementation</FONT></TD>
+			<TD ALIGN=LEFT><FONT SIZE=2>PLANNED</FONT></TD>
+			<TD ALIGN=LEFT><FONT SIZE=2>MenuBar first, sub menus on demand, better in background</FONT></TD>
+		</TR>
+	</TBODY>
+	<TBODY>
+		<TR>
+			<TD HEIGHT=21 ALIGN=LEFT><FONT SIZE=2>Start-Up</FONT></TD>
+			<TD ALIGN=LEFT><FONT SIZE=2>Optimize SvtLinguConfig</FONT></TD>
+			<TD ALIGN=LEFT><FONT SIZE=2>PLANNED</FONT></TD>
+			<TD ALIGN=LEFT><FONT SIZE=2>Don't fill all members in start-up, get data on demand</FONT></TD>
+		</TR>
+	</TBODY>
+	<TBODY>
+		<TR>
+			<TD HEIGHT=21 ALIGN=LEFT><FONT SIZE=2>Start-Up</FONT></TD>
+			<TD ALIGN=LEFT><FONT SIZE=2>Shorter symbols (Linux/Solaris), Evaluation</FONT></TD>
+			<TD ALIGN=LEFT><FONT SIZE=2>LATER</FONT></TD>
+			<TD ALIGN=LEFT><FONT SIZE=2>Shorten symbols in libraries, makes searches faster, but makes problems with debugging, crash reports</FONT></TD>
+		</TR>
+	</TBODY>
+	<TBODY>
+		<TR>
+			<TD HEIGHT=21 ALIGN=LEFT><FONT SIZE=2>Start-Up</FONT></TD>
+			<TD ALIGN=LEFT><FONT SIZE=2>Template component</FONT></TD>
+			<TD ALIGN=LEFT><FONT SIZE=2>LATER</FONT></TD>
+			<TD ALIGN=LEFT><FONT SIZE=2>Scanning lot of files, provide configuration snippets?</FONT></TD>
+		</TR>
+	</TBODY>
+	<TBODY>
+		<TR>
+			<TD HEIGHT=21 ALIGN=LEFT><FONT SIZE=2>Start-Up</FONT></TD>
+			<TD ALIGN=LEFT><FONT SIZE=2>Split Toolkit library</FONT></TD>
+			<TD ALIGN=LEFT><FONT SIZE=2>LATER</FONT></TD>
+			<TD ALIGN=LEFT><FONT SIZE=2>The UnoControls are only needed when we have form controls, and we would have less exports</FONT></TD>
+		</TR>
+	</TBODY>
+	<TBODY>
+		<TR>
+			<TD HEIGHT=21 ALIGN=LEFT><FONT SIZE=2>Start-Up</FONT></TD>
+			<TD ALIGN=LEFT><FONT SIZE=2>Design changes in SFX (startup phase)</FONT></TD>
+			<TD ALIGN=LEFT><FONT SIZE=2>LATER</FONT></TD>
+			<TD ALIGN=LEFT><FONT SIZE=2>Andreas has details in mind...</FONT></TD>
+		</TR>
+	</TBODY>
+	<TBODY>
+		<TR>
+			<TD HEIGHT=21 ALIGN=LEFT><FONT SIZE=2>Start-Up</FONT></TD>
+			<TD ALIGN=LEFT><FONT SIZE=2>Change toolbar controllers to UnoControllers</FONT></TD>
+			<TD ALIGN=LEFT><FONT SIZE=2>LATER</FONT></TD>
+			<TD ALIGN=LEFT><FONT SIZE=2>May be it doesn't help much for performance, but also for getting rid of old code</FONT></TD>
+		</TR>
+	</TBODY>
+	<TBODY>
+		<TR>
+			<TD HEIGHT=21 ALIGN=LEFT><FONT SIZE=2>Start-Up</FONT></TD>
+			<TD ALIGN=LEFT><FONT SIZE=2>Move Startup code from SFX to Framework</FONT></TD>
+			<TD ALIGN=LEFT><FONT SIZE=2>LATER</FONT></TD>
+			<TD ALIGN=LEFT><FONT SIZE=2>For avoiding SFX library in backing window</FONT></TD>
+		</TR>
+	</TBODY>
+	<TBODY>
+		<TR>
+			<TD HEIGHT=21 ALIGN=LEFT><FONT SIZE=2>Start-Up, Memory</FONT></TD>
+			<TD ALIGN=LEFT><FONT SIZE=2>Size of RDB files, memory consumption</FONT></TD>
+			<TD ALIGN=LEFT><FONT SIZE=2>STARTED</FONT></TD>
+			<TD ALIGN=LEFT><FONT SIZE=2>Structure of rdb files leads to unnecessary large files and memory consumption</FONT></TD>
+		</TR>
+	</TBODY>
+	<TBODY>
+		<TR>
+			<TD HEIGHT=21 ALIGN=LEFT><FONT SIZE=2>Start-Up</FONT></TD>
+			<TD ALIGN=LEFT><FONT SIZE=2>File order on disc</FONT></TD>
+			<TD ALIGN=LEFT><FONT SIZE=2>STARTED</FONT></TD>
+			<TD ALIGN=LEFT><FONT SIZE=2>Order files on disc so it matches the access order when starting OOo</FONT></TD>
+		</TR>
+	</TBODY>
+	<TBODY>
+		<TR>
+			<TD HEIGHT=17 ALIGN=LEFT><BR></TD>
+			<TD ALIGN=LEFT><BR></TD>
+			<TD ALIGN=LEFT><BR></TD>
+			<TD ALIGN=LEFT><BR></TD>
+		</TR>
+		<TR>
+			<TD HEIGHT=17 ALIGN=LEFT><BR></TD>
+			<TD ALIGN=LEFT><BR></TD>
+			<TD ALIGN=LEFT><BR></TD>
+			<TD ALIGN=LEFT><BR></TD>
+		</TR>
+		<TR>
+			<TD HEIGHT=17 ALIGN=LEFT><BR></TD>
+			<TD ALIGN=LEFT><BR></TD>
+			<TD ALIGN=LEFT><BR></TD>
+			<TD ALIGN=LEFT><BR></TD>
+		</TR>
+	</TBODY>
+	<TBODY>
+		<TR>
+			<TD HEIGHT=21 ALIGN=LEFT><FONT SIZE=2>Load/Save</FONT></TD>
+			<TD ALIGN=LEFT><FONT SIZE=2>Optimize Load/Save OpenDocument files, OLE external formats</FONT></TD>
+			<TD ALIGN=LEFT><FONT SIZE=2>DONE</FONT></TD>
+			<TD ALIGN=LEFT><FONT SIZE=2>Copy packed streams, instead of unpacking source, packing into destination storage</FONT></TD>
+		</TR>
+	</TBODY>
+	<TBODY>
+		<TR>
+			<TD HEIGHT=21 ALIGN=LEFT><FONT SIZE=2>Load/Save</FONT></TD>
+			<TD ALIGN=LEFT><FONT SIZE=2>Optimize Load/Save OpenDocument files, OLE own formats</FONT></TD>
+			<TD ALIGN=LEFT><FONT SIZE=2>STARTED</FONT></TD>
+			<TD ALIGN=LEFT><FONT SIZE=2>Have to be handled a little bit different then external OLE...</FONT></TD>
+		</TR>
+	</TBODY>
+	<TBODY>
+		<TR>
+			<TD HEIGHT=21 ALIGN=LEFT><FONT SIZE=2>Load/Save</FONT></TD>
+			<TD ALIGN=LEFT><FONT SIZE=2>Optimize Load/Save OpenDocument Presentation</FONT></TD>
+			<TD ALIGN=LEFT><FONT SIZE=2>STARTED</FONT></TD>
+			<TD ALIGN=LEFT><FONT SIZE=2><BR></FONT></TD>
+		</TR>
+	</TBODY>
+	<TBODY>
+		<TR>
+			<TD HEIGHT=21 ALIGN=LEFT><FONT SIZE=2>Load/Save</FONT></TD>
+			<TD ALIGN=LEFT><FONT SIZE=2>Optimize Load/Save PowerPoint</FONT></TD>
+			<TD ALIGN=LEFT><FONT SIZE=2>STARTED</FONT></TD>
+			<TD ALIGN=LEFT><FONT SIZE=2>convert later, load lazy...</FONT></TD>
+		</TR>
+	</TBODY>
+	<TBODY>
+		<TR>
+			<TD HEIGHT=21 ALIGN=LEFT><FONT SIZE=2>Load/Save</FONT></TD>
+			<TD ALIGN=LEFT><FONT SIZE=2>Optimize Load/Save OpenDocument Spreadsheet</FONT></TD>
+			<TD ALIGN=LEFT><FONT SIZE=2>STARTED</FONT></TD>
+			<TD ALIGN=LEFT><FONT SIZE=2><BR></FONT></TD>
+		</TR>
+	</TBODY>
+	<TBODY>
+		<TR>
+			<TD HEIGHT=21 ALIGN=LEFT><FONT SIZE=2>Load/Save</FONT></TD>
+			<TD ALIGN=LEFT><FONT SIZE=2>Optimize Load/Save OpenDocument Text</FONT></TD>
+			<TD ALIGN=LEFT><FONT SIZE=2>STARTED</FONT></TD>
+			<TD ALIGN=LEFT><FONT SIZE=2><BR></FONT></TD>
+		</TR>
+	</TBODY>
+	<TBODY>
+		<TR>
+			<TD HEIGHT=21 ALIGN=LEFT><FONT SIZE=2>Load/Save</FONT></TD>
+			<TD ALIGN=LEFT><FONT SIZE=2>Optimize Save OpenDocument files, Images</FONT></TD>
+			<TD ALIGN=LEFT><FONT SIZE=2>PLANNED</FONT></TD>
+			<TD ALIGN=LEFT><FONT SIZE=2>If image didn't change, quickly copy picture stream, see OLE optimization</FONT></TD>
+		</TR>
+	</TBODY>
+	<TBODY>
+		<TR>
+			<TD HEIGHT=21 ALIGN=LEFT><FONT SIZE=2>Load/Save</FONT></TD>
+			<TD ALIGN=LEFT><FONT SIZE=2>Improve graphic identification in GfxMgr</FONT></TD>
+			<TD ALIGN=LEFT><FONT SIZE=2>PLANNED</FONT></TD>
+			<TD ALIGN=LEFT><FONT SIZE=2>Faster checksum for images, and only when necessary</FONT></TD>
+		</TR>
+	</TBODY>
+	<TBODY>
+		<TR>
+			<TD HEIGHT=21 ALIGN=LEFT><FONT SIZE=2>Load/Save</FONT></TD>
+			<TD ALIGN=LEFT><FONT SIZE=2>Automatic Styles for character attributes</FONT></TD>
+			<TD ALIGN=LEFT><FONT SIZE=2>PLANNED</FONT></TD>
+			<TD ALIGN=LEFT><FONT SIZE=2>They are styles in XML anyway, so could quickly be assigned</FONT></TD>
+		</TR>
+	</TBODY>
+	<TBODY>
+		<TR>
+			<TD HEIGHT=21 ALIGN=LEFT><FONT SIZE=2>Load/Save</FONT></TD>
+			<TD ALIGN=LEFT><FONT SIZE=2>Optimize Load/Save Excel</FONT></TD>
+			<TD ALIGN=LEFT><FONT SIZE=2>PLANNED</FONT></TD>
+			<TD ALIGN=LEFT><FONT SIZE=2><BR></FONT></TD>
+		</TR>
+	</TBODY>
+	<TBODY>
+		<TR>
+			<TD HEIGHT=21 ALIGN=LEFT><FONT SIZE=2>Load/Save</FONT></TD>
+			<TD ALIGN=LEFT><FONT SIZE=2>Progressbar optimizations</FONT></TD>
+			<TD ALIGN=LEFT><FONT SIZE=2>PLANNED</FONT></TD>
+			<TD ALIGN=LEFT><FONT SIZE=2>Less reschedules</FONT></TD>
+		</TR>
+	</TBODY>
+	<TBODY>
+		<TR>
+			<TD HEIGHT=21 ALIGN=LEFT><FONT SIZE=2>Load/Save</FONT></TD>
+			<TD ALIGN=LEFT><FONT SIZE=2>Expat-wrapper/SAX optimizations, SAX?</FONT></TD>
+			<TD ALIGN=LEFT><FONT SIZE=2>PLANNED</FONT></TD>
+			<TD ALIGN=LEFT><FONT SIZE=2>Optimizations here can help all applications</FONT></TD>
+		</TR>
+	</TBODY>
+	<TBODY>
+		<TR>
+			<TD HEIGHT=21 ALIGN=LEFT><FONT SIZE=2>Load/Save</FONT></TD>
+			<TD ALIGN=LEFT><FONT SIZE=2>Optimize Load/Save Word</FONT></TD>
+			<TD ALIGN=LEFT><FONT SIZE=2>LATER</FONT></TD>
+			<TD ALIGN=LEFT><FONT SIZE=2>Wait for new filter component</FONT></TD>
+		</TR>
+	</TBODY>
+	<TBODY>
+		<TR>
+			<TD HEIGHT=21 ALIGN=LEFT><FONT SIZE=2>Load/Save</FONT></TD>
+			<TD ALIGN=LEFT><FONT SIZE=2>Optimize Load/Save OpenDocument Chart</FONT></TD>
+			<TD ALIGN=LEFT><FONT SIZE=2>LATER</FONT></TD>
+			<TD ALIGN=LEFT><FONT SIZE=2>Wait for new Chart</FONT></TD>
+		</TR>
+	</TBODY>
+	<TBODY>
+		<TR>
+			<TD HEIGHT=17 ALIGN=LEFT><BR></TD>
+			<TD ALIGN=LEFT><BR></TD>
+			<TD ALIGN=LEFT><BR></TD>
+			<TD ALIGN=LEFT><BR></TD>
+		</TR>
+		<TR>
+			<TD HEIGHT=17 ALIGN=LEFT><BR></TD>
+			<TD ALIGN=LEFT><BR></TD>
+			<TD ALIGN=LEFT><BR></TD>
+			<TD ALIGN=LEFT><BR></TD>
+		</TR>
+		<TR>
+			<TD HEIGHT=17 ALIGN=LEFT><BR></TD>
+			<TD ALIGN=LEFT><BR></TD>
+			<TD ALIGN=LEFT><BR></TD>
+			<TD ALIGN=LEFT><BR></TD>
+		</TR>
+	</TBODY>
+	<TBODY>
+		<TR>
+			<TD HEIGHT=21 ALIGN=LEFT><FONT SIZE=2>Rendering/Layout</FONT></TD>
+			<TD ALIGN=LEFT><FONT SIZE=2>Slide Sorter, create previews faster</FONT></TD>
+			<TD ALIGN=LEFT><FONT SIZE=2>STARTED</FONT></TD>
+			<TD ALIGN=LEFT><FONT SIZE=2>Changes in framework, bigger cache, configurable size</FONT></TD>
+		</TR>
+	</TBODY>
+	<TBODY>
+		<TR>
+			<TD HEIGHT=21 ALIGN=LEFT><FONT SIZE=2>Presentation</FONT></TD>
+			<TD ALIGN=LEFT><FONT SIZE=2>Presentation mode (Canves, BaseGfx)</FONT></TD>
+			<TD ALIGN=LEFT><FONT SIZE=2>STARTED</FONT></TD>
+			<TD ALIGN=LEFT><FONT SIZE=2>VCL Canvas? Software renderer based on X11?</FONT></TD>
+		</TR>
+	</TBODY>
+	<TBODY>
+		<TR>
+			<TD HEIGHT=21 ALIGN=LEFT><FONT SIZE=2>Presentation</FONT></TD>
+			<TD ALIGN=LEFT VALIGN=TOP><FONT SIZE=2>SlideShow first start</FONT></TD>
+			<TD ALIGN=LEFT><FONT SIZE=2>STARTED</FONT></TD>
+			<TD ALIGN=LEFT><FONT SIZE=2>HW detection, DirectX, ...</FONT></TD>
+		</TR>
+	</TBODY>
+	<TBODY>
+		<TR>
+			<TD HEIGHT=21 ALIGN=LEFT><FONT SIZE=2>Rendering</FONT></TD>
+			<TD ALIGN=LEFT><FONT SIZE=2>Drawing Engine architecure and performance</FONT></TD>
+			<TD ALIGN=LEFT><FONT SIZE=2>STARTED</FONT></TD>
+			<TD ALIGN=LEFT><FONT SIZE=2>Evaluations done. Primitives Part I: Minimum in Paint via VC, then rest of Paint, then change to Canvas</FONT></TD>
+		</TR>
+	</TBODY>
+	<TBODY>
+		<TR>
+			<TD HEIGHT=21 ALIGN=LEFT><FONT SIZE=2>Rendering/Layout</FONT></TD>
+			<TD ALIGN=LEFT><FONT SIZE=2>Get previews from image files</FONT></TD>
+			<TD ALIGN=LEFT><FONT SIZE=2>STARTED</FONT></TD>
+			<TD ALIGN=LEFT><FONT SIZE=2>Don't read/create full image, if only preview or smaller image is needed</FONT></TD>
+		</TR>
+	</TBODY>
+	<TBODY>
+		<TR>
+			<TD HEIGHT=40 ALIGN=LEFT><FONT SIZE=2>Rendering/Layout</FONT></TD>
+			<TD ALIGN=LEFT><FONT SIZE=2>Taskpanel, create thumb nails more quickly</FONT></TD>
+			<TD ALIGN=LEFT><FONT SIZE=2>STARTED</FONT></TD>
+			<TD ALIGN=LEFT><FONT SIZE=2>Search template files, get previews. Check: Multiple mimetype detection? One when gathering all files (framework), an other when sorting out the needed ones (impress)</FONT></TD>
+		</TR>
+	</TBODY>
+	<TBODY>
+		<TR>
+			<TD HEIGHT=21 ALIGN=LEFT><FONT SIZE=2>Presentation View</FONT></TD>
+			<TD ALIGN=LEFT><FONT SIZE=2>Changing views should be faster</FONT></TD>
+			<TD ALIGN=LEFT><FONT SIZE=2>PLANNED</FONT></TD>
+			<TD ALIGN=LEFT><FONT SIZE=2><BR></FONT></TD>
+		</TR>
+	</TBODY>
+	<TBODY>
+		<TR>
+			<TD HEIGHT=21 ALIGN=LEFT><FONT SIZE=2>Runtime</FONT></TD>
+			<TD ALIGN=LEFT><FONT SIZE=2>Basic Performance</FONT></TD>
+			<TD ALIGN=LEFT><FONT SIZE=2>PLANNED</FONT></TD>
+			<TD ALIGN=LEFT><FONT SIZE=2>Evaluate, it's unclear if some macros are slow because of Basic Runtime, or because of API implementations</FONT></TD>
+		</TR>
+	</TBODY>
+	<TBODY>
+		<TR>
+			<TD HEIGHT=21 ALIGN=LEFT><FONT SIZE=2>Rendering</FONT></TD>
+			<TD ALIGN=LEFT><FONT SIZE=2>Improve Bitmap painting in GfxMgr</FONT></TD>
+			<TD ALIGN=LEFT><FONT SIZE=2>LATER</FONT></TD>
+			<TD ALIGN=LEFT><FONT SIZE=2>Current implementation with VCL is quite slow sometimes</FONT></TD>
+		</TR>
+	</TBODY>
+	<TBODY>
+		<TR>
+			<TD HEIGHT=21 ALIGN=LEFT><FONT SIZE=2>Rendering/Layout</FONT></TD>
+			<TD ALIGN=LEFT><FONT SIZE=2>Remove unnecessary font cache</FONT></TD>
+			<TD ALIGN=LEFT><FONT SIZE=2>LATER</FONT></TD>
+			<TD ALIGN=LEFT><FONT SIZE=2>Also affects memory consumption</FONT></TD>
+		</TR>
+	</TBODY>
+	<TBODY>
+		<TR>
+			<TD HEIGHT=21 ALIGN=LEFT><FONT SIZE=2>Rendering/Layout</FONT></TD>
+			<TD ALIGN=LEFT><FONT SIZE=2>Mailmerge with large databse</FONT></TD>
+			<TD ALIGN=LEFT><FONT SIZE=2>LATER</FONT></TD>
+			<TD ALIGN=LEFT><FONT SIZE=2>CCTOR for SwDock</FONT></TD>
+		</TR>
+	</TBODY>
+	<TBODY>
+		<TR>
+			<TD HEIGHT=21 ALIGN=LEFT><FONT SIZE=2>Runtime</FONT></TD>
+			<TD ALIGN=LEFT><FONT SIZE=2>Drag&amp;Drop, Clipboard</FONT></TD>
+			<TD ALIGN=LEFT><FONT SIZE=2>LATER</FONT></TD>
+			<TD ALIGN=LEFT><FONT SIZE=2>DrawingObject, OLE, should be done on demand. OLE: A lot of file copies are done on Edit/Copy, then again on Edit/Paste...</FONT></TD>
+		</TR>
+	</TBODY>
+	<TBODY>
+		<TR>
+			<TD HEIGHT=21 ALIGN=LEFT><FONT SIZE=2>Layout</FONT></TD>
+			<TD ALIGN=LEFT VALIGN=TOP><FONT SIZE=2>Change Maser Page in big document (Evaluate)</FONT></TD>
+			<TD ALIGN=LEFT><FONT SIZE=2>LATER</FONT></TD>
+			<TD ALIGN=LEFT><FONT SIZE=2>How long does it take to re-render all pages when the master page changes?</FONT></TD>
+		</TR>
+	</TBODY>
+	<TBODY>
+		<TR>
+			<TD HEIGHT=21 ALIGN=LEFT><FONT SIZE=2>Layout</FONT></TD>
+			<TD ALIGN=LEFT><FONT SIZE=2>Layout Performance with hidden change tracking</FONT></TD>
+			<TD ALIGN=LEFT><FONT SIZE=2>LATER</FONT></TD>
+			<TD ALIGN=LEFT><FONT SIZE=2>When change tracking is not visible, layouting becomes quite slow...</FONT></TD>
+		</TR>
+	</TBODY>
+	<TBODY>
+		<TR>
+			<TD HEIGHT=21 ALIGN=LEFT><FONT SIZE=2></FONT></TD>
+			<TD ALIGN=LEFT><FONT SIZE=2></FONT></TD>
+			<TD ALIGN=LEFT><FONT SIZE=2></FONT></TD>
+			<TD ALIGN=LEFT><FONT SIZE=2></FONT></TD>
+		</TR>
+	</TBODY>
+</TABLE>
+<p><FONT SIZE=2>DONE = done, STARTED = started / in progress, PLANNED = planned in near future, LATER = Might be done some time </p>
+
+<p><FONT SIZE=2>If you would like to work on one of these things, please write an email to <A HREF="mailto:Malte.Timmermann@sun.com">Malte Timmermann</A>, so he can provide more details and can point you to people who are the experts in that specific area.</p>
+
+</BODY>
+
+</HTML>

Propchange: incubator/ooo/ooo-site/trunk/content/tools/performance/performance-activities-overview.html
------------------------------------------------------------------------------
    svn:eol-style = native



Mime
View raw message