Difference between revisions of "Performance/Reorder Symbols For Libraries"

From Apache OpenOffice Wiki
Jump to: navigation, search
(Microsoft Visual Studio 2008)
(Microsoft Visual Studio 2008)
Line 8: Line 8:
  
 
== Microsoft Visual Studio 2008 ==
 
== Microsoft Visual Studio 2008 ==
 +
 +
OpenOffice.org uses the Microsoft Visual Studion 2008 C/C++ compiler suite for building (called wntmsci12[.pro]). What options are available to support us reordering code/data in libraries. If you start the C/C++ compiler with the help option
  
 
<source lang="text">
 
<source lang="text">
Visual C++ Compiler Options
+
cl.exe /?
 +
</source>
 +
 
 +
you can see all supported options.
 +
 
 +
<source lang="text">
 +
Microsoft (R) 32-Bit C/C++-Optimierungscompiler Version 15.00.30729.01 für 80x86
 +
 
 +
Copyright (C) Microsoft Corporation.  All rights reserved.
  
 +
...
 
/Gh (Enable _penter Hook Function)
 
/Gh (Enable _penter Hook Function)
 
/Gy (Enable Function-Level Linking)
 
/Gy (Enable Function-Level Linking)
 +
...
 
</source>
 
</source>

Revision as of 20:57, 21 March 2009

Reorder code/data for libraries to improve file I/O

The comprehensive analysis of the cold start up behavior of OpenOffice.org shows that file I/O is main bottleneck. About 80% of the start up time is spent waiting for data from the disk. Most file I/O depends on library loading. This part describes what can be done to reduce I/O time for loading OpenOffice.org libraries. The main ideas are system independent but the solutions must be system/compiler specific. The following chapters describe in detail how we want to reorder code/data within the libraries.

Windows

This chapter describes the solution for the Windows platform.

Microsoft Visual Studio 2008

OpenOffice.org uses the Microsoft Visual Studion 2008 C/C++ compiler suite for building (called wntmsci12[.pro]). What options are available to support us reordering code/data in libraries. If you start the C/C++ compiler with the help option

cl.exe /?

you can see all supported options.

Microsoft (R) 32-Bit C/C++-Optimierungscompiler Version 15.00.30729.01 für 80x86
 
Copyright (C) Microsoft Corporation.  All rights reserved.
 
...
/Gh (Enable _penter Hook Function)
/Gy (Enable Function-Level Linking)
...
Personal tools