Apache OpenOffice (AOO) Bugzilla – Issue 76556
Openning and editing this document is too slow
Last modified: 2017-05-20 11:17:56 UTC
Hi. I'm using OOo 2.2.0 to edit the file slow.odt which I'm going to attach. It takes 1 minute and 20 seconds to open the file. After that, it takes 5 minutes and 20 seconds to insert a newline at the end of most of the lines. (Try, for instance, after one of the bulleted items at page 12.) I'm editing it in a Dell Optiplex GX280, with a Pentium IV 3GHz (ht), and 1.5GB of RAM. I'm running Ubuntu 6.04 here, but the problem also happens in other machines running Windows. I tried to shorten the document (which has 169 pages) in order to spot the piece that could be affecting the OOo performance but it took too long to wait for the delete operation to finish and I gave up.
Created attachment 44574 [details] This is the file which is slow to open and to edit.
As an additional (and possibly irrelevant) information, I saved the file as a .DOC and the resulting file can be openned and editted normally, i.e., with no slowness whatsoever.
Can confirm the slow loading of the document on Mac OS X Intel OpenOffice.org 2.2. However editing seems to be fine. It is probably the large document size that is causing the slow load times.
Seems to be a problem in numbering. Loading takes a few seconds then the program hangs updating numrules: stlport_vc845.dll!60e84e65() [Frames below may be incorrect and/or missing, no symbols loaded for stlport_vc845.dll] sw680mi.dll!_STL::_Rb_tree_iterator<SwNumberTreeNode *,_STL::_Const_traits<SwNumberTreeNode *> >::operator++() + 0x15 bytes C++ sw680mi.dll!SwNumberTreeNode::InvalidateTree() + 0x2e bytes C++ sw680mi.dll!SwNumberTreeNode::SetLastValid() + 0xa8 bytes C++ sw680mi.dll!SwNumberTreeNode::SetLastValid() + 0x26 bytes C++ sw680mi.dll!SwNumberTreeNode::SetLastValid() + 0xc8 bytes C++ sw680mi.dll!SwNumberTreeNode::ValidateContinuous() + 0xdb bytes C++ sw680mi.dll!SwNumberTreeNode::Validate() + 0x27 bytes C++ sw680mi.dll!SwNumberTreeNode::GetNumber() + 0x19 bytes C++ sw680mi.dll!SwNumberTreeNode::ValidateContinuous() + 0x91 bytes C++ sw680mi.dll!SwNumberTreeNode::Validate() + 0x27 bytes C++ sw680mi.dll!SwNumberTreeNode::GetNumber() + 0x19 bytes C++ sw680mi.dll!SwNumberTreeNode::ValidateContinuous() + 0x91 bytes C++ sw680mi.dll!SwNumberTreeNode::Validate() + 0x27 bytes C++ sw680mi.dll!SwNumberTreeNode::GetNumber() + 0x19 bytes C++ sw680mi.dll!SwNumberTreeNode::ValidateContinuous() + 0x91 bytes C++ sw680mi.dll!SwNumberTreeNode::Validate() + 0x27 bytes C++ sw680mi.dll!SwNumberTreeNode::GetNumber() + 0x19 bytes C++ sw680mi.dll!SwNumberTreeNode::ValidateContinuous() + 0x91 bytes C++ sw680mi.dll!SwNumberTreeNode::Validate() + 0x27 bytes C++ sw680mi.dll!SwNumberTreeNode::GetNumber() + 0x19 bytes C++ sw680mi.dll!SwNumberTreeNode::ValidateContinuous() + 0x91 bytes C++ sw680mi.dll!SwNumberTreeNode::Validate() + 0x27 bytes C++ sw680mi.dll!SwNumberTreeNode::GetNumber() + 0x19 bytes C++ sw680mi.dll!SwNumberTreeNode::ValidateContinuous() + 0x91 bytes C++ sw680mi.dll!SwNumberTreeNode::Validate() + 0x27 bytes C++ sw680mi.dll!SwNumberTreeNode::GetNumber() + 0x19 bytes C++ sw680mi.dll!SwNumberTreeNode::ValidateContinuous() + 0x91 bytes C++ sw680mi.dll!SwNumberTreeNode::Validate() + 0x27 bytes C++ sw680mi.dll!SwNumberTreeNode::GetNumber() + 0x19 bytes C++ sw680mi.dll!SwNumberTreeNode::ValidateContinuous() + 0x91 bytes C++ sw680mi.dll!SwNumberTreeNode::Validate() + 0x27 bytes C++ sw680mi.dll!SwNumberTreeNode::GetNumber() + 0x19 bytes C++ sw680mi.dll!SwNumberTreeNode::ValidateContinuous() + 0x91 bytes C++ sw680mi.dll!SwNumberTreeNode::Validate() + 0x27 bytes C++ sw680mi.dll!SwNumberTreeNode::ValidateMe() + 0xf bytes C++ sw680mi.dll!SwNodeNum::NotifyNode() + 0x8 bytes C++ sw680mi.dll!SwNumberTreeNode::Notify() + 0x20 bytes C++ sw680mi.dll!SwNumberTreeNode::Notify() + 0x35 bytes C++ sw680mi.dll!SwNumberTreeNode::NotifyInvalidChildren() + 0x37 bytes C++ sw680mi.dll!SwNumRule::Validate() + 0x10 bytes C++ sw680mi.dll!SwDoc::UpdateNumRule() + 0x23 bytes C++ > sw680mi.dll!SwReader::Read(const Reader & rOptions={...}) Line 438 C++ sw680mi.dll!SwDocShell::Load() + 0x110 bytes C++ sfx680mi.dll!SfxObjectShell::LoadOwnFormat() + 0xc8 bytes C++ sfx680mi.dll!SfxObjectShell::DoLoad() + 0x367 bytes C++ sfx680mi.dll!SfxBaseModel::load(const com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> & seqArguments={...}) Line 1635 + 0x29 bytes C++ sfx680mi.dll!SfxFrameLoader_Impl::load(const com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> & rArgs={...}, const com::sun::star::uno::Reference<com::sun::star::frame::XFrame> & rFrame={...}) Line 534 + 0x27 bytes C++ fwk680mi.dll!framework::LoadEnv::impl_loadContent() Line 1329 + 0x25 bytes C++ fwk680mi.dll!framework::LoadEnv::startLoading() Line 550 + 0x8 bytes C++ fwk680mi.dll!framework::LoadEnv::loadComponentFromURL(const com::sun::star::uno::Reference<com::sun::star::frame::XComponentLoader> & xLoader={...}, const com::sun::star::uno::Reference<com::sun::star::lang::XMultiServiceFactory> & xSMGR={...}, const rtl::OUString & sURL={...}, const rtl::OUString & sTarget={...}, long nFlags=0, const com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> & lArgs={...}) Line 363 C++ fwk680mi.dll!framework::Desktop::loadComponentFromURL(const rtl::OUString & sURL={...}, const rtl::OUString & sTargetFrameName={...}, long nSearchFlags=0, const com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> & lArguments={...}) Line 877 + 0x21 bytes C++ sfx680mi.dll!SfxApplication::OpenDocExec_Impl(SfxRequest & rReq={...}) Line 1380 + 0x4c bytes C++ sfx680mi.dll!SfxStubSfxApplicationOpenDocExec_Impl(SfxShell * pShell=0x02367c60, SfxRequest & rReq={...}) Line 1115 + 0xf bytes C++ sfx680mi.dll!SfxDispatcher::Call_Impl(SfxShell & rShell={...}, const SfxSlot & rSlot={...}, SfxRequest & rReq={...}, unsigned char bRecord=0) Line 338 + 0xb bytes C++ sfx680mi.dll!SfxDispatcher::_Execute(SfxShell & rShell={...}, const SfxSlot & rSlot={...}, SfxRequest & rReq={...}, unsigned short eCallMode=1) Line 1105 C++ sfx680mi.dll!SfxDispatcher::Execute(unsigned short nSlot=5501, unsigned short eCall=1, unsigned short nModi=0, const SfxItemSet & rArgs={...}) Line 1488 C++ sfx680mi.dll!SfxDispatcher::Execute(unsigned short nSlot=5501, unsigned short eCall=1, const SfxItemSet & rArgs={...}) Line 1460 C++ sfx680mi.dll!SfxApplication::OpenDocExec_Impl(SfxRequest & rReq={...}) Line 971 C++ sfx680mi.dll!SfxStubSfxApplicationOpenDocExec_Impl(SfxShell * pShell=0x02367c60, SfxRequest & rReq={...}) Line 1115 + 0xf bytes C++ sfx680mi.dll!SfxDispatcher::Call_Impl(SfxShell & rShell={...}, const SfxSlot & rSlot={...}, SfxRequest & rReq={...}, unsigned char bRecord='') Line 338 + 0xb bytes C++ sfx680mi.dll!SfxDispatcher::PostMsgHandler(SfxRequest * pReq=0x060e3fb8) Line 1649 C++ sfx680mi.dll!SfxDispatcher::LinkStubPostMsgHandler(void * pThis=0x023d41b8, void * pCaller=0x060e3fb8) Line 1609 + 0xf bytes C++ tl680mi.dll!Link::Call() + 0x11 bytes C++ sfx680mi.dll!SfxHintPoster::Event(SfxHint * pPostedHint=0x060e3fb8) Line 98 + 0x33 bytes C++ sfx680mi.dll!SfxHintPoster::LinkStubDoEvent_Impl(void * pThis=0x0238e528, void * pCaller=0x060e3fb8) Line 92 + 0x14 bytes C++ tl680mi.dll!Link::Call() + 0x11 bytes C++ vcl680mi.dll!ImplHandleClose() + 0x143 bytes C++ vcl680mi.dll!ImplWindowFrameProc() + 0x2c8 bytes C++ vcl680mi.dll!SalFrame::CallCallback() + 0x16 bytes C++ vcl680mi.dll!ImplHandleSalObjSysCharMsg() + 0x63a bytes C++ vcl680mi.dll!SalFrameWndProc() + 0x698 bytes C++ vcl680mi.dll!SalFrameWndProcW() + 0x30 bytes C++ user32.dll!77d18709() user32.dll!77d187eb() user32.dll!77d40494() user32.dll!77d189a5() user32.dll!77d193df() user32.dll!77d40494() user32.dll!77d189e8() vcl680mi.dll!ImplDispatchMessage() + 0x15 bytes C++ vcl680mi.dll!WinSalInstance::AcquireYieldMutex() + 0x36 bytes C++ vcl680mi.dll!ImplSalYield() + 0x45 bytes C++ vcl680mi.dll!WinSalInstance::Yield() + 0x9f bytes C++ vcl680mi.dll!Application::Yield() + 0x3a bytes C++ vcl680mi.dll!Application::Execute() + 0x1e bytes C++ soffice.bin!desktop::Desktop::Main() Line 1811 C++ vcl680mi.dll!ImplSVMain() + 0x3c bytes C++ vcl680mi.dll!SVMain() + 0x1c bytes C++ soffice.bin!sal_main_with_args(int __formal=1, int __formal=1) Line 82 C++ soffice.bin!main(int argc=1, char * * argv=0x00385b10) Line 74 + 0x20 bytes C++ soffice.bin!WinMain(void * _hinst=0x00400000, void * _dummy=0x00000000, char * _cmdline=0x00051f1f, int _nshow=1) Line 74 + 0x28 bytes C++ soffice.bin!__tmainCRTStartup() Line 578 + 0x1d bytes C kernel32.dll!7c816d4f() kernel32.dll!7c8399f3() After finishing this the loading process comes to an end pretty fast
The content.xml file inside seems unusual to me. The contents of it's office:automatic-styles tag occupies 62% of the file and defines almost 3.000 styles, most of which aren't used in the document.
according to release status meeting -> 3.x
Adding keyword "performance"
Reset assigne to the default "issues@openoffice.apache.org".