unfoldingWord / translationCore

Repository for the desktop application translationCore
https://www.translationcore.com
Other
36 stars 11 forks source link

Add an indicator showing that something is happening during the pause between clicking a menu selection and when the screen changes #3579

Open cckozie opened 6 years ago

cckozie commented 6 years ago

The app is very slow between checks in tW and between verses in wA. There is no indication to the user that the app is working, it just sits there for several seconds. There should be a loading cursor to indicate that the app is working during that pause.

mannycolon commented 5 years ago

Need to work out how to indicate that something is happening. Would suggest not using a spinning dialog. Maybe making the tC logo spin in the top menu bar? or Loading cursor?

PhotoNomad0 commented 5 years ago

Note:

PhotoNomad0 commented 5 years ago

Note: looks like we are doing a revalidation of the whole book on each contextId change at about 1/2 second on fast PC.

PhotoNomad0 commented 5 years ago

Note: The big delay in switching verses in WA seems to be re-rendering of the groupMenu which is doing file storage calls on each item to get latest state.

PhotoNomad0 commented 5 years ago

Note: the big delay in switching checks in tW seems to be due to file system reads being triggered in contextId changes (loading into reducer current data for selections, comments, invalidations, reminders). These are running very slow (about 1 second apiece) which seems to be due to data writes that are triggered on reducer changes.

PhotoNomad0 commented 5 years ago

Note: the next big delay in switching checks in tW seems to be due to CHANGE_CURRENT_CONTEXT_ID kicking off some more actions that take a couple seconds. One event seems to be ADD_TRANSLATIONHELPS_ARTICLE and then there is a 2 second delay after that. Looks like componentWillReceiveProps() is being re-triggered by resource loading. Probably should not be changing state within componentWillReceiveProps().

PhotoNomad0 commented 5 years ago

Note: it isn't necessary to validate verse in tools other than current verse. Next, do we really need to validate the whole verse for tW context changes? Probably not, but doesn't seem like it would speed things up that much?

cckozie commented 5 years ago
Build Open Group tW Open Check tW Open Verse wA Open Chapter tW Open Group tN Open Check tN
Average of previous builds 3.82 3.66 1.70 3.26 1.93 1.88
Minimum of previous builds 3.08 3.23 1.41 3 1.64 1.66
Maximum of previous builds 5.04 4.14 2.23 3.84 2.33 2.73
             
2.0.0 (b7e74cd) 4.05 2.33 1.46 2.75 2.01 1.56
Change to average 6% -57% -16% -19% 4% -21%
cckozie commented 5 years ago

Above are the results of my performance script as relating to the time it takes to open menu items in each of the tools. All timings are in seconds and are the average of 3 times running the script starting with importing a fully aligned Matthew project with no completed checks.

PhotoNomad0 commented 5 years ago

Hmm...It looks like for tW and tN opening groups is slower. Interesting.

cckozie commented 5 years ago

Windows 10 slow machine

Build tW Group tW Check wA Chapter wA Verse tN Group tN Check
2.0.0 (3256e93) 14.00 13.73 6.31 6.77 6.65 5.86
2.0.0 (b7e74cd) 12.38 7.98 2.55 3.78 5.22 3.09
Change -12% -42% -60% -44% -21% -47%
PhotoNomad0 commented 5 years ago

Note: stubbling out the TranslationHelpsWrapper pane reduces render from 3.44s to 1.66s in profiler

PhotoNomad0 commented 5 years ago

Note: rework of TWH with lazy load of helps article has sped up transitions, but still have additional delay in tW over tN.

birchamp commented 4 years ago

Please note: This issue isn't about the performance, but about indications to the user that there is a delay. A processing/loading cursor would let the user know that background processes are occurring.

cckozie commented 4 years ago

This is much less of a problem in 2.2.0 (d2e40ce) Changing checks in any tool on my Mac is now 1 second or less On my Windows machine worst case is tW where it is now ~ 1.5 seconds Lowering the priority on this one and moving to New Issues