Difference between revisions of "Performance"
From Apache OpenOffice Wiki
(→Approaches being worked on) |
(→system issues) |
||
Line 4: | Line 4: | ||
=== system issues === | === system issues === | ||
− | * Linux / Linking - relocation processing is very slow ( [http://ooocon-ljudmila.kiberpipa.org/media/Bloated_Michael_Meeks/video.ogg ogg video], [http://go-oo.org/~michael/performance.odp odp slides] ) | + | * Linux / Linking - relocation processing is very slow ( [http://ooocon-ljudmila.kiberpipa.org/media/Bloated_Michael_Meeks/video.ogg ogg video], [http://go-oo.org/~michael/performance.odp odp slides] ) several possible ways to fix that |
** re-ordering symbol & elf hash tables to improve cache locality, lots of good & simple ideas here. | ** re-ordering symbol & elf hash tables to improve cache locality, lots of good & simple ideas here. | ||
** -Bdirect implementation [http://sourceware.org/ml/binutils/2005-10/msg00436.html] - gaining little traction. | ** -Bdirect implementation [http://sourceware.org/ml/binutils/2005-10/msg00436.html] - gaining little traction. | ||
+ | ** exporting Vague linkage more cleverly & using RTLD_LOCAL where possible | ||
+ | ** basic linker optimizations: | ||
+ | *** don't export *UND* in .hash table | ||
+ | *** sort syms & dynsym entries more intelligently | ||
+ | *** .hashvals optimisation | ||
* Linux / I/O scheduling & pre-loading is poor | * Linux / I/O scheduling & pre-loading is poor | ||
Revision as of 19:45, 17 March 2006
As George Ou has famously said, "It doesn't matter how fast the CPU is, OpenOffice is just bloated."
Contents
Known areas for improvement
system issues
- Linux / Linking - relocation processing is very slow ( ogg video, odp slides ) several possible ways to fix that
- re-ordering symbol & elf hash tables to improve cache locality, lots of good & simple ideas here.
- -Bdirect implementation [1] - gaining little traction.
- exporting Vague linkage more cleverly & using RTLD_LOCAL where possible
- basic linker optimizations:
- don't export *UND* in .hash table
- sort syms & dynsym entries more intelligently
- .hashvals optimisation
- Linux / I/O scheduling & pre-loading is poor
General I/O & memory issues
- Configuration information scattered across many files
- UI configuration - tons of scattered files
- .rdb files - loads of empty space, mmap + random access pattern
Helpful Tooling and Resources
- Linux/cold-start simulator
- relocstat - dump relocation data
- RTL_LOGFILE - export RTL_LOGFILE=/tmp/foo
- valgrind - debug / trace memory usage
- speedprof - a quick / hackish sampling full-stack-trace profiler & visualisation tool
- APPR - a performance regression tool suite
- Performance Related Test Documents
Approaches being worked on
- XML Load
- Config refactor - reduce seeks/files, better caching
- Disk Access
- -Bdirect linking
- FIXME - Malte - we should really have your list embedded here ...
Other Pages
This Wiki page should become the ultimate authority on performance issues. Meanwhile, here are links to performance informationat other places