Difference between revisions of "Performance"

From Apache OpenOffice Wiki
Jump to: navigation, search
(mailing list address moved after incubation)
(68 intermediate revisions by 18 users not shown)
Line 1: Line 1:
 +
{{Performance}}
 +
== The performance project ==
 +
 
This wiki page is the collaboration entry point for the [http://performance.openoffice.org/ OOo Performance project].
 
This wiki page is the collaboration entry point for the [http://performance.openoffice.org/ OOo Performance project].
  
For questions and discussions, please use the new mailing list from the performance project: [mailto:dev@performance.openoffice.org dev@performance.openoffice.org]
+
For questions and discussions, please use the new mailing list from the performance project: [mailto:dev@openoffice.apache.org dev@openoffice.apache.org]
 +
 
 +
When you plan to file an issue with regard to performance, please make sure to add the keyword <tt>performance</tt>
  
The official (incubator) project was started in January 2009, but there have already been a lot of activities in this area in the past, so some of the information here (especially on the linked wiki pages) might be outdated.
+
The official (incubator) project was started February 2009, but there have already been a lot of activities in this area in the past, so some of the information here (especially on the linked wiki pages) might be outdated.
  
 
This page will be cleaned up soon.
 
This page will be cleaned up soon.
  
 +
== Deliverables ==
 +
* A test system for collecting reproducible and comparable performance data of OpenOffice.org master builds.
 +
* A test methodology for measuring and comparing performance data of OpenOffice.org master and CWS builds.
 +
* Lightweight tools that automatically collect performance data and assist developers in identifying performance bottlenecks.
 +
* Real life test scenarios which will also be reflected in the automatic performance tests.
 +
* OpenOffice.org startup performance improvements
 +
* OpenOffice.org ODF load/save performance improvements
 +
* Performance oriented analysis of OpenOffice.org's framework
  
== OOo Issues ==
+
== Work in progress ==
=== Issues from End-User ===
+
===Plan===
...
+
*To-Dos
=== Known areas for improvement ===
+
''Probably a lot - please [[Performance/To-Dos| continue here]].
  
==== Configmgr'''[new]''' ====
+
===Work===
 +
====Startup====
 +
* [[Performance/Startup#Issues]]
 +
* [[Performance/Configuration]]
 +
* [http://wiki.services.openoffice.org/wiki/Performance/OOo31_LibrariesOnStartup Performance - Analysis (Windows)]
 +
** [http://wiki.services.openoffice.org/wiki/Performance/OOo31_LibrariesOnStartup#File_I.2FO_during_OpenOffice.org_startup File I/O done by OpenOffice.org during startup]
 +
** [http://wiki.services.openoffice.org/wiki/Performance/OOo31_LibrariesOnStartup#Summary_3 Measure cold startup time for OpenOffice.org 3.1 and svdem.exe (minimal VCL application)]
 +
** [http://wiki.services.openoffice.org/wiki/Performance/Reorder_Symbols_For_Libraries Reorder symbols within a library to reduce I/O]
 +
** [http://wiki.services.openoffice.org/wiki/Performance/Library_and_directory_structure Optimizing library placement]
 +
** [http://wiki.services.openoffice.org/wiki/Performance/Achievements_Windows_Startup Current start up performance achievements for Windows]
  
* [http://wiki.services.openoffice.org/wiki/Configmgr_Refactoring Configmgr Refactoring]
+
====Writer====
* CWS[DEV300/configtune00]
+
* [[Performance/WriterInProgress|Writer Load/Save Performance]]
  
==== Component issues ====
+
====Calc====
 +
{{:Calc/InProgress/Performance}}
 +
For finished work see [[Calc/Done/Performance]].
  
* [[Calc/To-Dos/Performance|Calc]] - lots to do
+
====Impress====
* [[Writer_Performance|Writer]]
+
* Impress OpenDocument load/save performance [[Impress/Performance#OpenDocument]]
* [[Impress_Performance|Impress]]
+
* Impress slideshow performance [[Impress/Performance#Slideshow]]
* [[Base_performance|Base]] - lots to do
+
  
==== system issues ====
+
====Base====
* 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
+
* [http://wiki.services.openoffice.org/wiki/Base/Performance General performance planning]
** re-ordering symbol & elf hash tables to improve cache locality, lots of good & simple ideas here.
+
* [http://wiki.services.openoffice.org/wiki/Base/Performance#Row_Fetching Row fetching performance]
** -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
+
  
==== General I/O & memory issues ====
+
====Load/Save General (Non Application Specific Tasks)====
* Image strip layout - our images strips are huge & unwieldy, layed out [http://blogs.msdn.com/oldnewthing/archive/2005/08/05/448073.aspx horizontally] and are 'cached' in scattered files - this is fixed in CWS ka009, which never seems to get integrated.
+
* Configuration information scattered across many files
+
* UI configuration - tons of scattered files
+
* .rdb files - loads of empty space, mmap + random access pattern
+
  
== User Experience Index (UEI) ==
+
* [[RTLLogFileAnalysis|RTL_LOGFILE Analysis]]
 +
 
 +
===Achievement===
 +
 
 +
== Performance Status ==
 +
====User Experience Index (UEI)====
 
[http://wiki.services.openoffice.org/wiki/UEI UEI and Case Documents]
 
[http://wiki.services.openoffice.org/wiki/UEI UEI and Case Documents]
 +
====Distribution and Tracing====
 +
====Analysis of Performance====
 +
====Hotspots====
 +
'''Test results for different versions'''
 +
* [http://wiki.services.openoffice.org/wiki/Performance/Performance_Work_2005 Performance 2005]
 +
* [http://www.oooninja.com/2008/05/openofficeorg-getting-faster-benchmark.html Is OpenOffice.org Getting Faster?] benchmarks 5 common operations for OpenOffice.org versions 1.1.5 through 2.4.0 and DEV300_m3
 +
* [[Performance/Startup/Linux| Startup of DEV300 builds on linux]]
  
== Helpful Tooling and Resources ==
+
==Tooling and TC==
 +
=== Helpful Tooling and Resources ===
  
=== Test Environment ===
+
==== Test Environment ====
 
Popular reference configuration(use similar env on Hamburg and Beijing)
 
Popular reference configuration(use similar env on Hamburg and Beijing)
 
  CPU:    Core2 Duo 1.5~2G
 
  CPU:    Core2 Duo 1.5~2G
Line 53: Line 78:
 
  OS:    WindowsXP HOME
 
  OS:    WindowsXP HOME
  
=== Test & Tuning Tools ===
+
==== Test & Tuning Tools ====
  
 
* [[cold-start-simulator|Linux/cold-start]] simulator
 
* [[cold-start-simulator|Linux/cold-start]] simulator
Line 59: Line 84:
 
* [http://tools.openoffice.org/profiling/profiling-howto.html RTL_LOGFILE] - export RTL_LOGFILE=/tmp/foo
 
* [http://tools.openoffice.org/profiling/profiling-howto.html RTL_LOGFILE] - export RTL_LOGFILE=/tmp/foo
 
* [[valgrind]] - debug / trace memory usage
 
* [[valgrind]] - debug / trace memory usage
 +
* [[callgrind]] - call graph profiler
 
* [[speedprof]] - a quick / hackish sampling full-stack-trace profiler & visualisation tool
 
* [[speedprof]] - a quick / hackish sampling full-stack-trace profiler & visualisation tool
 
* [[APPR]] - a performance regression tool suite
 
* [[APPR]] - a performance regression tool suite
 
* [[Performance Related Test Documents]]
 
* [[Performance Related Test Documents]]
 +
* [[Profiling_with_VTune|VTune]] - profiler for Windows and Linux, commercial product
 +
* [[Performance/Tools/TrueTime|TrueTime]] - profiler for Windows, commercial product
 +
* [http://developer.amd.com/cpu/CodeAnalyst/codeanalystwindows/Pages/default.aspx AMD CodeAnalyst] - profiler for windows, optimized for AMD, VisualStudio integration
 +
* [[Performance/Tools/VerySleepy (HowTo)]] Very Sleepy 0.4 - open source profiler for windows, works on any cpu, very easy to use
 +
* [[Performance/AOO3.4.1_PVT_Introduction]] An introduction about performance test in AOO 3.4.1
  
=== Benchmarks & Description ===
+
==== Benchmarks & Description ====
 
If you have some benchmarks, share them here!
 
If you have some benchmarks, share them here!
  
 
* [http://www.oooninja.com/2008/09/fastest-openofficeorg-edition-benchmark.html The Fastest OpenOffice.org Edition] comparison of four 2.4.1 editions on Fedora 9
 
* [http://www.oooninja.com/2008/09/fastest-openofficeorg-edition-benchmark.html The Fastest OpenOffice.org Edition] comparison of four 2.4.1 editions on Fedora 9
 
* [http://www.oooninja.com/2008/05/openofficeorg-getting-faster-benchmark.html Is OpenOffice.org Getting Faster?] Comparison of 11 versions from 1.1.5 to 3.0.0 alpha
 
* [http://www.oooninja.com/2008/05/openofficeorg-getting-faster-benchmark.html Is OpenOffice.org Getting Faster?] Comparison of 11 versions from 1.1.5 to 3.0.0 alpha
 
+
* [http://www.oooninja.com/2009/03/multiplatform-benchmark-30.html Multiplatform OpenOffice.org 3.0 Benchmark] including vanilla OOo, StarOffice, Go-oo, Portable OOo on Windows XP and Ubuntu 8.10
== Performance Test Results Distribution ==
+
 
+
=== Test results for Different Versions ===
+
* [http://www.oooninja.com/2008/05/openofficeorg-getting-faster-benchmark.html Is OpenOffice.org Getting Faster?] benchmarks 5 common operations for OpenOffice.org versions 1.1.5 through 2.4.0 and DEV300_m3
+
...
+
 
+
=== Contrastive Data & Analysis ===
+
...
+
 
+
== Work List and Progress ==
+
* Configmgr re-factor, reduces locking overhead & memory usage cf. CWS configrefactor01
+
* [[XML Load]]
+
* [[DbConfig|Config refactor]] - reduce seeks/files, better caching
+
* [[Disk Access]]
+
* -Bdirect linking
+
* FIXME - Malte - we should really have your list embedded here ...
+
  
 
== Integrated improvements ==  
 
== Integrated improvements ==  
 
* [[Integrated_Performance_Improvements]]
 
* [[Integrated_Performance_Improvements]]
  
== Other Pages ==  
+
== Other Resource ==  
 
This Wiki page should become the ultimate authority on performance issues. Meanwhile, here are links to performance informationat other places
 
This Wiki page should become the ultimate authority on performance issues. Meanwhile, here are links to performance informationat other places
 
* [http://tools.openoffice.org/performance/ OpenOffice.org Performance Tuning page]
 
* [http://tools.openoffice.org/performance/ OpenOffice.org Performance Tuning page]
 
* [http://sw.openoffice.org/drafts/optimization.html Writer (SW, XML, Math, Linguistic) specific Optimizations]
 
* [http://sw.openoffice.org/drafts/optimization.html Writer (SW, XML, Math, Linguistic) specific Optimizations]
 
* [http://tools.openoffice.org/performance/performance-activities-overview.html Current & Planned Performance Activities]
 
* [http://tools.openoffice.org/performance/performance-activities-overview.html Current & Planned Performance Activities]
 +
* [http://wiki.services.openoffice.org/wiki/User:Blibrestez55/Books/Blibrestez55platform_integration
  
 
[[Category:Development]]
 
[[Category:Development]]

Revision as of 08:53, 26 November 2012

Performance 170.png
Performance Project

performance.openoffice.org

Quick Navigation

Team

Communication

Activities

About this template


The performance project

This wiki page is the collaboration entry point for the OOo Performance project.

For questions and discussions, please use the new mailing list from the performance project: dev@openoffice.apache.org

When you plan to file an issue with regard to performance, please make sure to add the keyword performance

The official (incubator) project was started February 2009, but there have already been a lot of activities in this area in the past, so some of the information here (especially on the linked wiki pages) might be outdated.

This page will be cleaned up soon.

Deliverables

  • A test system for collecting reproducible and comparable performance data of OpenOffice.org master builds.
  • A test methodology for measuring and comparing performance data of OpenOffice.org master and CWS builds.
  • Lightweight tools that automatically collect performance data and assist developers in identifying performance bottlenecks.
  • Real life test scenarios which will also be reflected in the automatic performance tests.
  • OpenOffice.org startup performance improvements
  • OpenOffice.org ODF load/save performance improvements
  • Performance oriented analysis of OpenOffice.org's framework

Work in progress

Plan

  • To-Dos

Probably a lot - please continue here.

Work

Startup

Writer

Calc


For finished work see Calc/Done/Performance.

Impress

Base

Load/Save General (Non Application Specific Tasks)

Achievement

Performance Status

User Experience Index (UEI)

UEI and Case Documents

Distribution and Tracing

Analysis of Performance

Hotspots

Test results for different versions

Tooling and TC

Helpful Tooling and Resources

Test Environment

Popular reference configuration(use similar env on Hamburg and Beijing)

CPU:    Core2 Duo 1.5~2G
Memory: 512M
OS:     WindowsXP HOME

Test & Tuning Tools

Benchmarks & Description

If you have some benchmarks, share them here!

Integrated improvements

Other Resource

This Wiki page should become the ultimate authority on performance issues. Meanwhile, here are links to performance informationat other places

Personal tools