<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>
<p>Dear Tobias,</p>
<p>I can have a look at optimizing getModuleStatus. I can certainly
see that only checking locally installed modules might be a speed
improvement, but I suspect most of the time is loading all the
.conf files for each module, and that is done when constructing
the SWMgr (remote and local). SWORD previously worked with a
single modules.conf file where the section was appended each time
a module was loaded. It still will work in this manner. I might
try dumping all the .conf files into a single cache.conf file and
using that for reading the info of a remote repository-- which can
include thousands of individual .conf files. We can see if that
speeds up this operation.<br>
</p>
<div class="moz-cite-prefix">On 10/30/22 08:49, Tobias Klein wrote:<br>
</div>
<blockquote type="cite"
cite="mid:E1opAZH-0004TO-7W@smtprelay06.ispgateway.de">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="Generator" content="Microsoft Word 15 (filtered
medium)">
<style>@font-face
{font-family:"Cambria Math";
panose-1:2 4 5 3 5 4 6 3 2 4;}@font-face
{font-family:Calibri;
panose-1:2 15 5 2 2 2 4 3 2 4;}@font-face
{font-family:Consolas;
panose-1:2 11 6 9 2 2 4 3 2 4;}p.MsoNormal, li.MsoNormal, div.MsoNormal
{margin:0cm;
font-size:11.0pt;
font-family:"Calibri",sans-serif;}span.pl-k
{mso-style-name:pl-k;}.MsoChpDefault
{mso-style-type:export-only;}div.WordSection1
{page:WordSection1;}</style>
<div class="WordSection1">
<p class="MsoNormal"><span lang="EN-US">Hi Troy,<o:p></o:p></span></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">When integrating the module update
functionality in Ezra Bible App, I noticed a performance issue
in the function <span
style="font-size:9.0pt;font-family:Consolas;color:#D2A8FF;background:#0D1117">InstallMgr::getModuleStatus</span>.</p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">On my laptop, it takes almost two seconds
to run this against all repositories from the master repo
list. On my slower surface tablet, it takes even longer and I
haven’t tested it on my even slower Android devices, yet. This
generates a bit of an issue in my JavaScript based application
(longer interrupts of the JavaScript event loop lead to some
freezing in the UI).</p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Considering the parameters <span
class="pl-k"><span
style="font-size:9.0pt;font-family:Consolas;color:white;background:#0D1117">const</span></span><span
style="font-size:9.0pt;font-family:Consolas;color:#C9D1D9;background:#0D1117">
SWMgr &base, </span><span class="pl-k"><span
style="font-size:9.0pt;font-family:Consolas;color:white;background:#0D1117">const</span></span><span
style="font-size:9.0pt;font-family:Consolas;color:#C9D1D9;background:#0D1117">
SWMgr &other</span>, I saw that the function loops
through all modules within <span
style="font-size:9.0pt;font-family:Consolas;color:#C9D1D9;background:#0D1117">other</span>.
If one just wants to see which local modules are outdated, it
would be enough to go through the ones that are also present
within <span
style="font-size:9.0pt;font-family:Consolas;color:#C9D1D9;background:#0D1117">base</span>,
right? Could that be a way of optimizing the performance?<br>
<br>
Best regards,<br>
Tobias</p>
</div>
<br>
<fieldset class="moz-mime-attachment-header"></fieldset>
<pre class="moz-quote-pre" wrap="">_______________________________________________
sword-devel mailing list: <a class="moz-txt-link-abbreviated" href="mailto:sword-devel@crosswire.org">sword-devel@crosswire.org</a>
<a class="moz-txt-link-freetext" href="http://crosswire.org/mailman/listinfo/sword-devel">http://crosswire.org/mailman/listinfo/sword-devel</a>
Instructions to unsubscribe/change your settings at above page
</pre>
</blockquote>
</body>
</html>