Open cckozie opened 6 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?
Note:
Note: looks like we are doing a revalidation of the whole book on each contextId change at about 1/2 second on fast PC.
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.
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.
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().
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?
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% |
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.
Hmm...It looks like for tW and tN opening groups is slower. Interesting.
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% |
Note: stubbling out the TranslationHelpsWrapper pane reduces render from 3.44s to 1.66s in profiler
Note: rework of TWH with lazy load of helps article has sped up transitions, but still have additional delay in tW over tN.
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.
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
spinnerloading cursorThe 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.