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