How I lowered Logos startup time from 25 seconds to 9 seconds for free

Page 1 of 2 (26 items) 1 2 Next >
This post has 25 Replies | 2 Followers

Posts 1536
Forum MVP
Fr Devin Roza | Forum Activity | Posted: Sat, Mar 17 2012 8:47 AM

Although I have a Core i3 with an SSD, Logos generally takes 20-25 seconds to startup. 

If I turn off the setting to "Use Internet", all of a sudden Logos pops up in an average of 9 seconds! Nice!

Unfortunately, that means that I can no longer use "Reading Lists", which I find quite helpful. So, I have ended up turning back on the option to "Use Internet".

I wanted to share this tip with you. I also created a suggestion here to ask Logos to optimize their startup time. It shouldn't be too difficult to allow Internet talk to happen after Logos starts up, and not before: http://logos.uservoice.com/forums/42823-logos-bible-software-4/suggestions/2690871-optimize-startup-time 

 

Posts 30879
Forum MVP
JT (alabama24) | Forum Activity | Replied: Sat, Mar 17 2012 9:13 AM

Fr. Devin - 

Do you open to a layout or the home page? 

macOS, iOS & iPadOS | Logs |  Install

Posts 9205
LogosEmployee

Fr Devin Roza:

If I turn off the setting to "Use Internet", all of a sudden Logos pops up in an average of 9 seconds! Nice!

Please enable logging and post the Logos4.log file, so we can try to identify what's causing the delay.

Posts 1536
Forum MVP
Fr Devin Roza | Forum Activity | Replied: Sat, Mar 17 2012 10:33 AM

Bradley, thanks for the help. Alabama24, I've tried both, but the problem is present even with the home page turned off.

I created 4 log files, which contain the startup for Logos with "No Internet" enabled or disabled, and with "Show Home Page at Startup" enabled or disabled. 

With Internet and Home Page (showing main window in 21.431 seconds according to log)

1300.Logos4 - Internet, Home Page.log

With Internet, no home page (showing main window in 19.503 seconds according to log)

3058.Logos4 - Internet, No Home Page.log

No Internet, with Home Page (Showing main window at 10.167 seconds according to log)

4532.Logos4 - No Internet, Home Page.log

No Internet, no home page (Showing main window at 10.065 seconds according to log)

3157.Logos4 - No Internet, No Home Page.log

The painting of the home page actually takes place after the indicated time in the logs. Here is how long it took, when Home Page was activated, to paint the home page according to the above logs:

With the Internet connection turned off - 1.146 seconds

With the Internet connection turned on - 1.8832 seconds

Not too big of a difference there, the main difference appears to be in what goes on before painting the home page when the Internet option is turned on. 

Posts 570
Rev Chris | Forum Activity | Replied: Sat, Mar 17 2012 12:18 PM

Fr Devin Roza:

Although I have a Core i3 with an SSD, Logos generally takes 20-25 seconds to startup. 

If I turn off the setting to "Use Internet", all of a sudden Logos pops up in an average of 9 seconds! Nice!

Unfortunately, that means that I can no longer use "Reading Lists", which I find quite helpful. So, I have ended up turning back on the option to "Use Internet".

I wanted to share this tip with you. I also created a suggestion here to ask Logos to optimize their startup time. It shouldn't be too difficult to allow Internet talk to happen after Logos starts up, and not before: http://logos.uservoice.com/forums/42823-logos-bible-software-4/suggestions/2690871-optimize-startup-time 

 

Wow - I noticed the same thing - thanks for the tip!  I was just counting in my head, but I got up to 28 before the homescreen started painting with Internet turned on.  With it turned off, I only got to 11.

Pastor, seminary trustee, and app developer.  Check out my latest app for churches: The Church App

Posts 3760
BillS | Forum Activity | Replied: Sat, Mar 17 2012 12:52 PM

My setup shaves about 10 seconds (repeatably), too... used a stopwatch.

Average around 27 seconds with internet off, around 37 seconds with internet on.

Never open to the home page... Instead, open to this layout:

16 resources, 4 Reports (MPG--including sermoncentral & logos sermon sections, MEG, Text Compare, Power Lookup), all in 4 windows, one with 4 panels.

Although I have an 8Gb SD RAM card that's dedicated to ReadyBoost in the system, Logos doesn't appear to use it (light never comes on).

Enabled logging... logs attached. (Internet on)

576656.Logos4.log

8662.Logos4Indexer.log

Grace & Peace,
Bill


MSI GF63 8RD, I-7 8850H, 32GB RAM, 1TB SSD, 2TB HDD, NVIDIA GTX 1050Max
iPhone 12 Pro Max 512Gb
iPad 9th Gen iOS 15.6, 256GB

Posts 30879
Forum MVP
JT (alabama24) | Forum Activity | Replied: Sat, Mar 17 2012 1:02 PM

I don't know if it is related or not… Many users have found that downloaded resources on the mobile device work much faster offline than when connected to the internet. Tongue Tied

macOS, iOS & iPadOS | Logs |  Install

Posts 2769
DominicM | Forum Activity | Replied: Sat, Mar 17 2012 1:39 PM

I would say this extra is normal, especially on a mobile device, after all everything needs checked to see if there are newer copies on the server, or updated annotations, mine takes a lot longer (non-ssd) to start

Never Deprive Anyone of Hope.. It Might Be ALL They Have

Posts 30879
Forum MVP
JT (alabama24) | Forum Activity | Replied: Sat, Mar 17 2012 1:45 PM

DominicM:
everything needs checked to see if there are newer copies on the server, or updated annotations,

I think this is done before hand. I am talking about when you are flipping through pages. 

macOS, iOS & iPadOS | Logs |  Install

Posts 1536
Forum MVP
Fr Devin Roza | Forum Activity | Replied: Sun, Mar 18 2012 10:11 AM

I think the question really is whether with a little creative thinking the Logos startup time couldn't be drastically reduced. Let me just share a few ideas to get the juices flowing.

I use Logos on only 1 computer. That means that my local cache is always the most up to date version of my layout, etc. Even if we stick with the model of syncing on startup (which I would suggest should be optional), Logos should be able to simply send the date/time of my last setup in the local cache, and receive back the message that local cache is the latest there is, and just start. That is, it should have to send about 2KB of info, and it should take something like .250 seconds... not 10 seconds.

But I would suggest that's probably not the only aspect of the Logos startup that could be optimized. Looking at the logs, it seems, for example, that Logos checks each resource to see if I have a valid license for it before opening. I think it's great that Logos checks, but I wonder... couldn't this be done during idle time after opening the program?

For Logos, an invalid license is analogous to a virus on a computer. We don't want virus, and we need to scan for virus, but do we do a full scan of the computer every time we boot into Windows?

It's not necessary for virus. For Logos? What if Logos scanned during idle user time after opening up the program? Maybe it finds something. In that moment it simply closes that resource if it is open and does whatever else it needs to do, such as delete it or whatever.

What other aspects of the Logos startup could be redesigned to be done after loading the initial screen? I'm not sure, just throwing the idea out there. It wouldn't surprise me if with some OOTB thinking a typical Logos install could boot in less than 5 seconds. Maybe even 2 or 3.

Posts 3760
BillS | Forum Activity | Replied: Sun, Mar 18 2012 3:44 PM

Fr Devin Roza:
I think the question really is whether with a little creative thinking the Logos startup time couldn't be drastically reduced.

Yes +1

Grace & Peace,
Bill


MSI GF63 8RD, I-7 8850H, 32GB RAM, 1TB SSD, 2TB HDD, NVIDIA GTX 1050Max
iPhone 12 Pro Max 512Gb
iPad 9th Gen iOS 15.6, 256GB

Posts 19718
Rosie Perera | Forum Activity | Replied: Sun, Mar 18 2012 3:52 PM

Fr Devin Roza:
I think it's great that Logos checks, but I wonder... couldn't this be done during idle time after opening the program?

I have often felt that Logos could do a better job of taking advantage of idle time. Computers are much faster than humans, so while we are slowly reading something or deciding what to do next, Logos could be using those wasted CPU cycles to do tasks that can be deferred from startup, or to pre-cache stuff that would be slow if we had to wait for it later, such as populating the list of Bibles and collections that drops down in the Bible Search tab when you click on the Search In dropdown.

Idle processing can be interrupted as soon as the user interacts with the keyboard or mouse, and then it can be picked up where it left off when the user is idle again.

This is such a standard and useful technique for performance improvement. The user's perception of performance is everything! Idle time processing can improve the user's perception of performance even if the speed of the operation itself is actually no faster. I've been pushing for Logos to do idle processing (or do more of it if they already are). So far I've never gotten a response from developers about it.

Yes, I know it's hard to rework the program if this isn't already built into the architecture. Too bad. Do it. It will pay off in bucket-loads down the road.

Posts 3760
BillS | Forum Activity | Replied: Sun, Mar 18 2012 3:56 PM

Rosie Perera:
I have often felt that Logos could do a better job of taking advantage of idle time. ... Logos could be using ... wasted CPU cycles to do tasks that can be deferred from startup, or to pre-cache stuff that would be slow if we had to wait for it later,

...

Idle processing can be interrupted as soon as the user interacts with the keyboard or mouse, and then it can be picked up where it left off when the user is idle again.

...

Yes, I know it's hard to rework the program if this isn't already built into the architecture. Too bad. Do it. It will pay off in bucket-loads down the road.

Yes +1

Grace & Peace,
Bill


MSI GF63 8RD, I-7 8850H, 32GB RAM, 1TB SSD, 2TB HDD, NVIDIA GTX 1050Max
iPhone 12 Pro Max 512Gb
iPad 9th Gen iOS 15.6, 256GB

Posts 1536
Forum MVP
Fr Devin Roza | Forum Activity | Replied: Mon, Mar 19 2012 12:09 AM

Just a few more quick OOTB ideas:

1. Instead of checking the resources on the hard drive (=slow), simply maintain a database table which lists the resources which have been installed and their license. When new resources are added or removed, the database table is updated.

2. When Logos loads up a book, it simply checks for the license in the database table. No need to even review in the background during idle time license files, and certainly no need on startup. If it's not in your database table, it doesn't load, so it doesn't matter if the user adds illegal files. When a user installs a new module, put all the security checks you can imagine before updating the database table, but it's done once.

3. This also means that Logos wouldn't even need to check the folder on startup to see what resources are there (regardless of the license check).

4. (This one's for you Bob!) Run a two week long Idea Campaign internal to Logos employees to brainstorm creative ideas to optimize Logos for speed. Offer some sort of prize for the best idea(s). If helpful start up the two week campaign with a presentation that offers a technical analysis of the current speed bottlenecks. Even in the case that nothing concrete come of the campaign, the important thing is to create a culture of speed within Logos. Wink

Posts 15805
Forum MVP
Keep Smiling 4 Jesus :) | Forum Activity | Replied: Mon, Mar 19 2012 2:11 AM

Fr Devin Roza:
1. Instead of checking the resources on the hard drive (=slow), simply maintain a database table which lists the resources which have been installed and their license. When new resources are added or removed, the database table is updated.

Logos 4 has a database table with resource metadata, including last time updated by Logos.  When "Use Internet" is yes, Logos 4 periodically checks for new resources.  Personally had a new resource purchase (twitter daily deal) download within a couple hours after order placed.  If had wanted resource sooner, could have used update resources command.

Logos 4 only has licensed resources installed in your Logos4 folder, which is different than Libronix 3 that could have unlicensed resource files.

Keep Smiling Smile

Posts 1536
Forum MVP
Fr Devin Roza | Forum Activity | Replied: Mon, Mar 19 2012 3:27 AM

Excellent. I was referring to how in the log of Logos' startup you can see that Logos actually reviews one by one each and every resource on the hard drive, which can take a while. If the database table is used, that could probably be made unnecessary, allowing for a much faster boot time.

Posts 15805
Forum MVP
Keep Smiling 4 Jesus :) | Forum Activity | Replied: Mon, Mar 19 2012 4:02 AM

Fr Devin Roza:

Excellent. I was referring to how in the log of Logos' startup you can see that Logos actually reviews one by one each and every resource on the hard drive, which can take a while. If the database table is used, that could probably be made unnecessary, allowing for a much faster boot time.

Looking at my Logos4.log file, noted many SQLite database files are processed (file names end with .db).  Also noted many data types being loaded; suspect using Libronix.DataTypes.DLL file.  Likewise noted absence of individual resource file names (or references).

Personally wonder if sync manager is interrupting data type manager initialization ?

Keep Smiling Smile

Posts 1536
Forum MVP
Fr Devin Roza | Forum Activity | Replied: Mon, Mar 19 2012 5:14 AM

I guess you're right - there are a few hundred data types, which generally correspond to a certain resource being loaded. Someone from Logos once mentioned to me that licenses are also reviewed, I'm not sure of course what exactly that implies.

Regardless of the technical details of what exactly is going on hopefully the idea of reexamining what is loaded / reviewed / downloaded, etc. before displaying the main screen can get those who really do understand thinking of creative ways to boot faster! Smile

Posts 1166
Tom Reynolds | Forum Activity | Replied: Mon, Mar 19 2012 5:22 AM

In checking my log I see that Logos doesn't even check the Internet setting until 4 secs have passed.

2012-03-16 13:21:20.0274    1    Info    OurApp    Starting application

2012-03-16 13:21:24.1644    1    Info    AppStartupModel    (Timed) Checking 'Use Internet' setting.

I think a lot does happen after you load it because it wasn't until 17 minutes later that Logos finally reported being idle and meant it:

012-03-16 13:38:08.0514    1    Info    LDLS4.AppModel    App is now idle.

And it stayed idle until I began using it. I may be able to shave off some seconds by turning Internet use to off but I don't think I'll make it down to 9! :)

Posts 1536
Forum MVP
Fr Devin Roza | Forum Activity | Replied: Mon, Mar 19 2012 7:31 AM

LOL. You are one funny man!

Page 1 of 2 (26 items) 1 2 Next > | RSS