Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Performance issues that scale with total number of samples to annotate. #5

Open
spott opened this issue Oct 18, 2018 · 2 comments
Open

Comments

@spott
Copy link

spott commented Oct 18, 2018

For many samples (>1000), the lag between when a button is clicked and the display of the next sample gets longer (in a way that is roughly proportional to the number of samples).

I'm not sure what is causing this. It appears that there is a lot of iterating through the entire dataset -- for example, when updating the progress indicator, it iterates through the entire task list, rather than just updating the one value that has been changed.

It would be awesome if there was a way to do the annotation on a generator, rather than coercing everything to a list. I know it would change the progress indication, but it would fix this problem.

@kuk
Copy link
Contributor

kuk commented Oct 19, 2018

It happens because ipyannotate redraws interface on each update. We need to work on javascript side to make it faster. Two reasons why it was not done yet:

  1. I am a bad javascript programmer
  2. ipyannotate is for manual annotation. It is hard for human to work with >1000 tasks. In practice one splits data in ~100 tasks chunks any way

Supporting annotation of generators is another feature request. Currently not sure why ipyannotate would need that. Fixing performance issues requires javascript implementation optimisation

@spott
Copy link
Author

spott commented Jan 22, 2019

So, I think I'm running into jupyter-widgets/ipywidgets#1345 with this. When I try and look at ~100 tasks, the memory will slowly increase (along with taking longer per iteration).

Do you have a good idea about how to "close" a widget in order to free up the browser space?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants