[sword-devel] InstallMgr::getModuleStatus / Performance optimization possible?

Troy A. Griffitts scribe at crosswire.org
Thu Nov 3 12:57:18 EDT 2022


Dear Tobias,

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.

On 10/30/22 08:49, Tobias Klein wrote:
>
> Hi Troy,
>
> When integrating the module update functionality in Ezra Bible App, I 
> noticed a performance issue in the function InstallMgr::getModuleStatus.
>
> 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).
>
> Considering the parameters constSWMgr &base, constSWMgr &other, I saw 
> that the function loops through all modules within other. 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 base, right? Could 
> that be a way of optimizing the performance?
>
> Best regards,
> Tobias
>
>
> _______________________________________________
> sword-devel mailing list:sword-devel at crosswire.org
> http://crosswire.org/mailman/listinfo/sword-devel
> Instructions to unsubscribe/change your settings at above page
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://crosswire.org/pipermail/sword-devel/attachments/20221103/33fcf0d5/attachment.htm>


More information about the sword-devel mailing list