mbari-org / vars-annotation

Video Annotation Application for MBARI's Media Management (M3) software stack
https://docs.mbari.org/vars-annotation/
Apache License 2.0
16 stars 6 forks source link

Performance regressions with version 1.4.6 #146

Closed hohonuuli closed 1 year ago

hohonuuli commented 1 year ago

From Kris:

We are having issues with VARS anno 1.4.6 and the table. It's not updating with new annotations reliably, at times it will for 5 or so annotations and then it won't update until you adjust the scroll or table size and the last 10-20 annotations are then added. It's also taking a very long time to add associations to the table (can see them in the lower association window when added but not on table), and to delete annotations and redraw table is at a glacial pace (oftentimes if you are deleting a large number of annos, you have to close VARS and open again to see updated list). Something is very different here with this version. I went back to 1.0.0 and 1.3.0 and the delay is not there so I don't think it's a network or server thing (1.3.0 has the major table redraw issue but annotations and associations are added and deleted quickly). 1.4.6 is very hard to use if after nearly every annotation a user has to mouse up to edge of table and resize or hit the scroll bar. I wasn't able to use 1.4.5 with shark-1 to test that version and see if it's related to a shark-2 issue.

This is likely due to some attempted fixes for #128, specifically this change in AnnotationTableController.

Proposed fix is to remove that change and push out new release ASAP.

hohonuuli commented 1 year ago

Might need to add getTableVIew().refresh() here

hohonuuli commented 1 year ago

I ran a diff between the latest version and 1.3.0 and tried to unwinding various changes to see if they addressed these issues:

Change 1.3.0 1.4.6 Testing results
BulkCreateAnnotations.java uses refreshAnnotationsView Sends annotations added then annotations selected events Some improvement. But it does an uneeded round trip to annosaurus. Still redraw issues
AnnotationsTableController.java ON changed event, removes and adds annotations On changed event, replaces annotation in place Some improvement, but still major issues - table not always redrawing correctly
JavaFX version 19 19.02 No effect
hohonuuli commented 1 year ago

If i turn off the details column, many of the issues go away. So it's related to the row height. I think at this point the best option is to replace the TableView with something else. So probably do the swing table control instead.

hohonuuli commented 1 year ago

From Kris:

Thanks, Brian. I went back to v1.0.0 for testing yesterday and then stuck with it because honestly the table stability in that version is excellent and makes annotating so much more efficient. This table issue is almost a show stopper for me when annotating MWTS transects, and definitely needs the asap since it's even more difficult to use in version 1.4.6 but we want to use the ML features available.

hohonuuli commented 1 year ago

Email sent to video lab:

I’ve pushed a new version of VARS (1.4.7). This release reverts to the same (very old) version of JavaFX used in v1.0.0. Let me know if it improves things. You can download it at:

hohonuuli commented 1 year ago

Email sent to DARC:

There’s a new release of VARS at https://github.com/mbari-media-management/vars-annotation/releases/tag/1.4.7. This is yet another attempt at the jumping row issue.

As a bonus perk, this release works with our new video player that allows you to localized (draw boxes) directly on video. A quick demo video is at: https://youtu.be/kRCB-gaOKQo. The only catch is the video requires macOS Ventura (the latest version). So you may want to upgrade one computer and run some tests before committing. The older Sharktopoda also works with this release, so you’re not required to use the new player. I’ve put a copy of the video player for you at https://drive.google.com/file/d/1gIj-SfNO6QCJ9K1yMET5XSKyPMoZbinR/view?usp=sharing. There’s documentation for setting the configuration at https://docs.mbari.org/vars-annotation/setup/#vars-port-setting

As always don’t hesitate to reach out if you have questions.

hohonuuli commented 1 year ago

From Kris:

Ok yes, 1.4.7 works with Monterey and shark-1, and the best news is the table is working as it did in 1.0.0! Will continue to test for the afternoon.

hohonuuli commented 1 year ago

So the fix seems to be to revert from JavaFX 19.0.2 to 14.0.2.1

hohonuuli commented 1 year ago

Feedback from Kris:

Here are my notes on v1.4.7 with older 1.0.0 table contents:

  • Having issues with table redraw/lag/delay in 1.4.7 (have to click scroll bar to get it to update) when you get to hundreds of annotations per file
  • There is an odd issue where if you select "new annotation" button and type in concept, once you hit enter it highlights the neighboring line of annotation (like it is entering to the next line) Concept gets updated and any assoc you assign go to the new line of annotation but still the neighboring one stays highlighted. Just a heads up. Also when adding an association to a concept, it enters association to the correct line but then immediately highlights the neighboring line of annotation rather than staying on line you are editing.
hohonuuli commented 1 year ago

Reverted back to JavaFX 19.0.2 and using Swing as a table control replacement