Issue 85798 - Aqua: Load/Save of documents much slower on Aqua than other ports on same hardware
Summary: Aqua: Load/Save of documents much slower on Aqua than other ports on same har...
Status: CLOSED FIXED
Alias: None
Product: porting
Classification: Code
Component: MacOSX (show other issues)
Version: OOH680m5
Hardware: Mac Mac OS X, all
: P2 Trivial (vote)
Target Milestone: OOo 3.0
Assignee: stefan.baltzer
QA Contact: issues@porting
URL:
Keywords: aqua
Depends on: 85860 85992 86095
Blocks:
  Show dependency tree
 
Reported: 2008-02-01 13:27 UTC by stephan_schaefer
Modified: 2008-03-18 02:52 UTC (History)
1 user (show)

See Also:
Issue Type: DEFECT
Latest Confirmation in: ---
Developer Difficulty: ---


Attachments

Note You need to log in before you can comment on or make changes to this issue.
Description stephan_schaefer 2008-02-01 13:27:42 UTC
A good test document is
http://www.oasis-open.org/committees/download.php/26216/OpenDocument-formula-20071115.odt

Loading and saving of this document is very slow. Tests revealed that this is
due to expensive progress bar updates.

Once it is loaded, you cannot type immediately but have to wait for another 10
sec or so before the app is responding again. This is due to the timer handling
which has to be fixed as well.
Comment 1 stephan_schaefer 2008-02-01 13:28:19 UTC
set target and keyword
Comment 2 hdu@apache.org 2008-02-01 13:42:36 UTC
.
Comment 3 hdu@apache.org 2008-02-01 15:28:58 UTC
The progress bar painting is not too expensive, but the full AquaSalFrame::Sync() called after each painting 
is...

The responsiveness issue has a different cause than the timer handling I originally suspected:
AquaSalInstance::AnyInput()'s current implementation doesn't convince SwDoc's idle-layouter that the  
system is not idling.
Comment 4 hdu@apache.org 2008-02-04 08:03:14 UTC
AquaSalInstance::AnyInput() implemented in CWS aquavcl05 => when performance is needed for 
interactivity idle-tasks doesn't occupy the CPU anymore
Comment 5 hdu@apache.org 2008-02-04 09:17:53 UTC
When the idle-handling wasn't fixed yet profiling showed that Writer's layouter could be made noticeably 
faster by short-circuiting some simple text measurement queries => implemented in CWS aquavcl05
Comment 6 hdu@apache.org 2008-02-04 12:44:56 UTC
AquaFrame::Flush() being too expensive got fixed in CWS aquavcl05 by getting rid of the synchronous 
indirect call to AquaSalGraphics::UpdateWindow()

These cumulative changes improve the performance of loading the test document mentioned above from 
32sec to 13sec on my test system :-)
Comment 7 hdu@apache.org 2008-02-05 09:27:04 UTC
Adjusted headline to summarize the more detailed root causes which are outlined in my analysis results 
above.
Comment 8 hdu@apache.org 2008-02-14 13:00:52 UTC
With the changes from issue 86095 the test documents now loads in 11 seconds instead of 13 secs 
previously or the original 32 seconds.
Comment 9 philipp.lohmann 2008-02-19 21:18:13 UTC
please verify in CWS aquavcl05
Comment 10 stefan.baltzer 2008-03-04 14:38:12 UTC
Verified in CWS aquavcl05.
Comment 11 shaunmcdonald131 2008-03-18 02:52:45 UTC
closing