<html>
<head>
<base href="https://bugs.documentfoundation.org/">
</head>
<body>
<p>
<div>
<b><a class="bz_bug_link
bz_status_NEW "
title="NEW - Slow Start with many LanguagePacks/Dictionaries installed"
href="https://bugs.documentfoundation.org/show_bug.cgi?id=123173#c13">Comment # 13</a>
on <a class="bz_bug_link
bz_status_NEW "
title="NEW - Slow Start with many LanguagePacks/Dictionaries installed"
href="https://bugs.documentfoundation.org/show_bug.cgi?id=123173">bug 123173</a>
from <span class="vcard"><a class="email" href="mailto:sbergman@redhat.com" title="Stephan Bergmann <sbergman@redhat.com>"> <span class="fn">Stephan Bergmann</span></a>
</span></b>
<pre>To measure the impact of reading all the *.xcd files under share/registry/
(whose number grows with the number of installed language packs) on start-up of
LibreOffice, I did the following: With a (non-debug) local build of recent
LibreOffice master on Windows, including the patch
<span class="quote">> diff --git a/configmgr/source/components.cxx b/configmgr/source/components.cxx
> index f7bd5ba34e3a..c64452f80a7e 100644
> --- a/configmgr/source/components.cxx
> +++ b/configmgr/source/components.cxx
> @@ -1,3 +1,4 @@
> +#include<iostream>
> /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
> /*
> * This file is part of the LibreOffice project.
> @@ -497,7 +498,7 @@ Components::Components(
> if (type == "xcsxcu") {
> sal_uInt32 nStartTime = osl_getGlobalTimer();
> parseXcsXcuLayer(layer, url);
> - SAL_INFO("configmgr", "parseXcsXcuLayer() took " << (osl_getGlobalTimer() - nStartTime) << " ms");
> + std::cerr<<"\nparseXcsXcuLayer() took " << (osl_getGlobalTimer() - nStartTime) << " ms\n";
> layer += 2; //TODO: overflow
> } else if (type == "bundledext") {
> parseXcsXcuIniLayer(layer, url, false);
> @@ -521,7 +522,7 @@ Components::Components(
> } else if (type == "res") {
> sal_uInt32 nStartTime = osl_getGlobalTimer();
> parseResLayer(layer, url);
> - SAL_INFO("configmgr", "parseResLayer() took " << (osl_getGlobalTimer() - nStartTime) << " ms");
> + std::cerr<<"\nparseResLayer() took " << (osl_getGlobalTimer() - nStartTime) << " ms\n";
> ++layer; //TODO: overflow
> #if ENABLE_DCONF
> } else if (type == "dconf") {</span >
to print timing information about reading (the two different bunches of) those
*.xcd files:
* A --with-lang=ALL build prints
<span class="quote">> parseXcsXcuLayer() took 114 ms
>
> parseResLayer() took 2586 ms</span >
when running instdir/program/soffice.exe, and a crude stopwatch measurement
from start to showing the startcenter window takes 4.50 sec.
* A --with-lang=en-US build prints
<span class="quote">> parseXcsXcuLayer() took 72 ms
>
> parseResLayer() took 2 ms</span >
when running instdir/program/soffice.exe, and a crude stopwatch measurement
from start to showing the startcenter window takes 1.55 sec.
So this reading of all *.xcd files indeed accounts for a measurable part of the
slowdown. (Maybe more so than on e.g. Linux, as accessing many individual
files is purportedly slow on Windows.)
But in the context of the original <a href="show_bug.cgi?id=123173#c0">comment 0</a>, I see no room at least for
obvious, "low-hanging" improvement here, nor an indication that speeding up the
many-LanguagePacks scenario would also benefit the single-LanguagePack
scenario's start-up time.</pre>
</div>
</p>
<hr>
<span>You are receiving this mail because:</span>
<ul>
<li>You are the assignee for the bug.</li>
</ul>
</body>
</html>