Difference between revisions of "Performance"

From Apache OpenOffice Wiki
Jump to: navigation, search
 
(96 intermediate revisions by 28 users not shown)
Line 1: Line 1:
As George Ou has famously said, "It doesn't matter how fast the CPU is, OpenOffice is just bloated."
+
{{Performance}}
 +
== The performance project ==
  
== Known areas for improvement ==
+
This wiki page is the collaboration entry point for the [https://www.openoffice.org/performance// AOo Performance project].
  
=== Component issues ===
+
For questions and discussions, please use the new mailing list from the performance project: [mailto:dev@openoffice.apache.org dev@openoffice.apache.org]
  
* [[Calc_Performance|Calc]] - lots to do
+
When you plan to file an issue with regard to performance, please make sure to add the keyword <tt>performance</tt>
* [[Writer_Performance|Writer]]
 
* [[Impress_Performance|Impress]]
 
  
=== system issues ===
+
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.
* 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.
 
** -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 ===
+
This page will be cleaned up soon.
* 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 ==
+
== 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 [[Performance/To-Dos| continue here]].
 +
 
 +
===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]
 +
 
 +
====Writer====
 +
* [[Performance/WriterInProgress|Writer Load/Save Performance]]
 +
 
 +
====Calc====
 +
{{:Calc/InProgress/Performance}}
 +
For finished work see [[Calc/Done/Performance]].
 +
 
 +
====Impress====
 +
* Impress OpenDocument load/save performance [[Impress/Performance#OpenDocument]]
 +
* Impress slideshow performance [[Impress/Performance#Slideshow]]
 +
 
 +
====Base====
 +
* [http://wiki.services.openoffice.org/wiki/Base/Performance General performance planning]
 +
* [http://wiki.services.openoffice.org/wiki/Base/Performance#Row_Fetching Row fetching performance]
 +
 
 +
====Load/Save General (Non Application Specific Tasks)====
 +
 
 +
* [[RTLLogFileAnalysis|RTL_LOGFILE Analysis]]
 +
 
 +
===Achievement===
 +
 
 +
== Performance Status ==
 +
====User Experience Index (UEI)====
 +
[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]]
 +
 
 +
==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 ====
  
 
* [[cold-start-simulator|Linux/cold-start]] simulator
 
* [[cold-start-simulator|Linux/cold-start]] simulator
Line 31: 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 ====
 +
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/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
  
== Approaches being worked on ==  
+
== Integrated improvements ==  
* [[XML Load]]
+
* [[Integrated_Performance_Improvements]]
* [[DbConfig|Config refactor]] - reduce seeks/files, better caching
 
* [[Disk Access]]
 
* -Bdirect linking
 
* FIXME - Malte - we should really have your list embedded here ...
 
  
== 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:Performance]]
 +
[[Category:Database]]
 +
[[Category:Effort]]
 +
[[Category:Build_System]]

Latest revision as of 10:52, 10 September 2022

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 AOo 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

The DPL extension (version 2.3.0) produced a SQL statement which lead to a Database error.
The reason may be an internal error of DPL or an error which you made,
especially when using DPL options like titleregexp.
Query text is:
SELECT DISTINCT `page`.page_namespace AS page_namespace,`page`.page_title AS page_title,`page`.page_id AS page_id, rev_user, rev_user_text, rev_comment, rev_timestamp FROM `revision` AS rev, `page` INNER JOIN `categorylinks` AS cl0 ON `page`.page_id=cl0.cl_from AND (cl0.cl_to='Calc') INNER JOIN `categorylinks` AS cl1 ON `page`.page_id=cl1.cl_from AND (cl1.cl_to='InProgress') INNER JOIN `categorylinks` AS cl2 ON `page`.page_id=cl2.cl_from AND (cl2.cl_to='Performance') WHERE 1=1 AND NOT (`page`.page_title LIKE 'Calc/InProgress/Performance') AND `page`.page_is_redirect=0 AND `page`.page_id=rev.rev_page AND rev.rev_timestamp=( SELECT MAX(rev_aux.rev_timestamp) FROM `revision` AS rev_aux WHERE rev_aux.rev_page=rev.rev_page ) ORDER BY rev_timestamp DESC LIMIT 500 OFFSET 0

Error message is:
Unknown column 'rev_user' in 'field list' (127.0.0.1)



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