Performance/Library and directory structure

From Apache OpenOffice Wiki
< Performance
Revision as of 12:32, 21 April 2009 by Cd (Talk | contribs)

Jump to: navigation, search

Performance 170.png
Performance Project

performance.openoffice.org

Quick Navigation

Team

Communication

Activities

About this template


Optimizing the placement of libraries for a better cold start up

This part wants to concentrate on a possible problem which has been introduced by the three layer structure for OpenOffice.org 3.

Main idea

According to an article from Microsoft the placement of shared libraries is crucial for a good start up performance. The article states that the load time of a library can be reduced by about 20% if it's located at the first search position (next to the binary).

It must be clarified if the findings can also have positive effects on the other platforms.

At least on recent Linux versions, the loader appears to cache the content of directories it has already scanned for a library, so that spreading the libraries across multiple directories has no real performance impact. On Mac OS X, library dependencies are always with full path, anyway. Sb 14:15, 14 April 2009 (UTC)

Windows

  • Windows Vista Ultimate 32-Bit
  • Opteron 175 (Dual core) 2,2Ghz
  • 4 GB RAM
  • Deskstar 7K250 160GB 8MB Cache
  • (Super Fetch and Prefetch disabled)
  • Measurement tool: Process Monitor from Microsoft

Performance test with DEV300m45

The following performance test wants to clarify how much performance can be gained with an optimized library placement. According to Microsoft documentation all libraries should be located next to the application executable. Therefore we modified some configuration files and moved all libraries from "OpenOffice.org 3\Basis\program" and "OpenOffice.org 3\URE\bin" to the "OpenOffice.org\program" folder where soffice.exe, soffice.bin.

Optimization method Test run 1 Test run 2 Test run 3 Test run 4 Test run 5 Mean time
OOO310m9 16,1s 16,1s 16,4s 16,2s 16,2s 16,2s (100%)
DEV300m45 (standard) 15,8s 15,8s 14,9s 15,9s 14,8s 15,4s (95%)
DEV300m45 (flat*) 13,7s 14,1s 14,3s 13,7s 13,3s 13,8s (85%)
DEV300m45 (not rebased/flat*) 9,9s 11,5s 11,3s 11,6s 10,7s 11s (68%)
  • flat = All libraries are located next to the application binaries. Means that all libraries are within the "OpenOffice.org 3\program" folder.

The DEV300m45 includes an optimization regarding the access to the rdb files which contain types and services for UNO. That's why you see a performance improvement between OOO310m9 and a standard DEV300m45 installation.

The performance test clearly shows that the split of the libraries and not placing them next to the application binaries brought us a 10% start up performance penalty. Therefore it would makes sense to place these libraries again into the program folder of the installation.

Personal tools