In our efforts to improve the performance speed of the application we have added a new option that needs to be manually applied. This process will need to be repeated each time a new version of the application is installed.
Updated to reflect changes made in 7.9 RC 1
To run the new performance command line:
1. Run a Command Prompt for `[logosinstallpath]\Logos.exe /ngen`
2. Click on Yes for changes to be made on the pop-up
To undo this process:
1. Run a Command Prompt for `[logosinstallpath]\Logos.exe /unngen`
How to Enable and Submit Log Files
OK, being the brave one... (will probably regret this)...
- I didn't get the UAC message in step 2 (probably because I'm running an admin account)
- How do I know if this is done? The ngen seems to be stuck on a certain line for a long time. Is this normal? OK ngen now closes itself down automatically after about 5 minutes.
- Note also the warning messages about Methods Not Found in the middle, see attached file
- Logos 7.9 beta 1 on Windows 10. Logos was open the whole time while ngen ran... should I have closed it?
- Should I restart Logos? Scared to close it down for fear it may not start again...
- If it is safe to shut down Logos and restart (should I restart Windows also?), where do I look for the performance improvements?
See attached file of the ngen text...1104.Logos7.9beta1ngen.txt
Thanks,
Peter
PL: - I didn't get the UAC message in step 2 (probably because I'm running an admin account)
That sounds pretty plausible.
PL: - How do I know if this is done? The ngen seems to be stuck on a certain line for a long time. Is this normal? OK ngen now closes itself down automatically after about 5 minutes.
This all sounds normal. There won't be anything special when the process finishes, so it sounds like it should have worked just fine.
PL: - Note also the warning messages about Methods Not Found in the middle, see attached file
This is not a problem.
PL: - Logos 7.9 beta 1 on Windows 10. Logos was open the whole time while ngen ran... should I have closed it?
It doesn't matter if Logos was running while ngen ran.
PL: - Should I restart Logos? Scared to close it down for fear it may not start again... - If it is safe to shut down Logos and restart (should I restart Windows also?)?
- If it is safe to shut down Logos and restart (should I restart Windows also?)?
Yes. You can restart Logos. There is no need to restart Windows. If you run into a problem, you can use the process listed above to remove the optimization.
PL: where do I look for the performance improvements?
where do I look for the performance improvements?
You should see improvements in startup time plus the first time you access any particular feature of the application.
To help you feel a little more comfortable with what's happening... The only change we've made to our application here is to add a command-line parameter that allows you to take advantage of a feature provided by Microsoft to provide post-installation performance improvements. All of the real work is done by a tool from Microsoft which was already available on your system. You could have manually used this tool at any point in the past to see the same performance gains.
A slightly more technical explanation is here: https://en.wikipedia.org/wiki/Native_Image_Generator
Andrew Batishko | Faithlife software developer
Thank you Andrew!
This brave soul is very happy! It's like I got a turbo-upgraded new computer! Startup time is 25 seconds from click on icon to fully functional, usable Logos. Didn't time it before, I think startup was close to 1 minute previously. Everything is so much more responsive! It is nothing short of miraculous and amazing! I even ran a fuzzy search under the Bible search and it is so much faster.
The only problem I have encountered so far is with the Bible Word Study guide. When I opened it from the menu, it carried over a Hebrew word from my previous search. I tried to type in "g:pistis" but each letter took several seconds to appear. Eventually it ran the search and the results came back very fast. Even though the response time here is unacceptably slow, it is already an improvement over before I restarted Logos after I ran ngen. Then each letter took maybe 20 seconds to pop up and was utterly unusable. That's why I was scared to restart Logos. Can you please look into this slowness issue?
Thanks very much! Once this approach is fully tested by other users, I assume this will be built into future installation processes to run automatically?
Great work (FL and MS)!
EDIT: P.S. The auto-populate of text entry boxes seem extremely slow. E.g. If I type in "esv" or "niv" in the Command Box, the auto-populate spins for 10-15 seconds before populating.
Glad to hear that this is working out really well for you!
PL: The only problem I have encountered so far is with the Bible Word Study guide. When I opened it from the menu, it carried over a Hebrew word from my previous search. I tried to type in "g:pistis" but each letter took several seconds to appear. Eventually it ran the search and the results came back very fast. Even though the response time here is unacceptably slow, it is already an improvement over before I restarted Logos after I ran ngen. Then each letter took maybe 20 seconds to pop up and was utterly unusable. That's why I was scared to restart Logos. Can you please look into this slowness issue?
This is an unrelated issue. I recommend starting a new thread if you can recreate the problem. You will probably want to submit profiling logs as detailed here: https://wiki.logos.com/Logos_Windows_Profiler_Utility
PL: Thanks very much! Once this approach is fully tested by other users, I assume this will be built into future installation processes to run automatically?
We're not entirely sure yet how this will be implemented generally. It can't be done completely automatically, since it requires elevation, and it has to happen after every time a new version is installed. Assuming that your experience is generally shared by others, we'll be taking a look at the best way to integrate this more cleanly.
Andrew Batishko (Faithlife): Assuming that your experience is generally shared by others...
Wow, I definitely noticed an improvement on my end too. I just had a 4 second start up!!
Logos 9 | Dell Inspiron 7373 | Windows 11 Pro 64, i7, 16GB, SSD | iPhone 13 Pro Max
Noticeably faster loading times.
From Logos.log(s):
- without ngen: "Info StartupUtility Finished startup at 6937ms"
- with ngen: "Info StartupUtility Finished startup at 4024ms" 2913ms faster ---> 42%
JRS has left the building.
Philana R. Crouch: In our efforts to improve the performance speed of the application we have added a new option that needs to be manually applied. This process will need to be repeated each time a new version of the application is installed. To run the new performance command line: 1. Run a Command Prompt for `[logosinstallpath]\Logos.exe /ngen`
Well it certainly took awhile to compile, but not horribly so.
It's hard to say if the observable start up time was really faster, only because I had Logos running before I did this, which I assume left certain DLL's etc in ram, second startup is always faster anyway, and it did seem at least that fast.
I have not noticed anything amiss. But I'll continue to pay attention.
Sarcasm is my love language. Obviously I love you.
I don't look at logs, but it seems significantly faster at startup. (I rebooted in case there is some caching effect.) Changing layouts seems faster, too. This machine has 16GB and an SSD. I'll get a better idea when I try it on a slower computer.
Windows 10 [i7-4770; 32GB; SSD] (L9; Dark Mode mostly) | Samsung Gal A13; Android 12 (L9) | Fire OS 7 (L9)
There are four lights
I installed it.
Can you explain a little about what this is doing that is supposed to speed things up?
Pastor, North Park Baptist Church
Bridgeport, CT USA
Is the result of this new performance command line identical to running "ngen install" on Logos.exe (i.e., the assemblyPath)?
https://docs.microsoft.com/en-us/dotnet/framework/tools/ngen-exe-native-image-generator
Mark Smith:Can you explain a little about what this is doing that is supposed to speed things up?
Andrew supplied this link, above.
Dave===
Windows 11 & Android 8
Adam Olean: Is the result of this new performance command line identical to running "ngen install" on Logos.exe (i.e., the assemblyPath)? https://docs.microsoft.com/en-us/dotnet/framework/tools/ngen-exe-native-image-generator
That's correct.
JRS: Noticeably faster loading times.
From Logos logs:
- without ngen: "Info StartupUtility Finished startup" 12.9s-15.9s. Avg. 14.2s
- with ngen: "Info StartupUtility Finished startup" 9.9s-11.5s. Avg. 10.5s
There is less lag opening my ESV tab with one Search VF.
EDIT: on v7.7 time to finish startup approx. 24s. Overall performance improvement is > 50% on a hard drive.
Don't forget, you can put the command line ([logosinstallpath]\Logos.exe /ngen) into a text file and save it as Filename.cmd. Double clicking on that file should run the installer when you need to do it for the next version of Logos.
Jonathan Pitts: Don't forget, you can put the command line ([logosinstallpath]\Logos.exe /ngen) into a text file and save it as Filename.cmd. Double clicking on that file should run the installer when you need to do it for the next version of Logos.
Yes , the old DOS is still needed and required. Faithlife probably can integrate a subroutine that would partially automate the process in the future.
Jonathan Pitts:you can put the command line ([logosinstallpath]\Logos.exe /ngen) into a text file and save it as Filename.cmd. Double clicking on that file should run the installer when you need to do it
thanks for the shortcut
Erwin Stull, Sr.:save it as Filename.cmd
how did you accomplish this? when I attempt it says it an invalid name...
Andrew Batishko (Faithlife):It doesn't matter if Logos was running while ngen ran.
If this is the case, I'm not sure why you're forcing users to open a command prompt and run a command line.
Pleased with the continued performance work... A bit surprised that Logos hasn't been ngen'd all along...
Donnie
James Taylor: Erwin Stull, Sr.:save it as Filename.cmd how did you accomplish this? when I attempt it says it an invalid name...
That should do it. As it stands your filename has slashes and such that means it's a path.