-
Notifications
You must be signed in to change notification settings - Fork 637
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
Issue1091 #1279
Issue1091 #1279
Conversation
Brilliant! How is the speed now? is it at least functional? Do we even need risky optimization that I've made? |
I may clean up and push for #1277 but abandon the effort to only receive git log diffs from the server as that assumption changes have so much implications |
@jung-kim With this PR, Ungit is usable on a large repository, but still sluggish. Very rough profiling seems to indicate that a significant amount of time is being taken running Git commands. I'm interested in further speed improvements, but won't have much time to work on this for at least several days. |
I understand and will definitely look for other improvements as well I've done more thinking and did take a look at the changes in unprioritized-signals . I do agree with the spirit and intent of the changes. however I do have some few concerns:
I think due to this, maybe we should replacing this library with micro-signals? It's implementation is dead simple and uses Only thing is that it is a typescript... Do you think this makes sense? |
@jung-kim here is the same "fix" with |
@jung-kim Thanks for the discussion, and for finding problems. I hadn't tried switching from repository to repository; when I do I do see that the listeners build up, with duplicates included. Before, I think the listeners would build up to the sum of all the repositories ever viewed. This seems odd and wasteful -- why would we need thousands of listeners for a repository that we're not even displaying? My (possibly naive) expectation is that we'd just drop the Signal instance when changing repositories. |
Absolutely agree, I think this is an oversight or perhaps a regression. There is no need for this.
Doing clean up would work. But forgive me as I'm not sure if I'm ready to give up on more simpler and slicker replacement for this library as shown by @campersau . I will do my best to make myself focus on this issue and push out a solution soon. @campersau thanks, and will see what the memory problem is |
@jung-kim I agree completely -- deeper/better solutions in the directions suggested by @campersau are preferable. I'm going to close this PR now in expectation that better approaches will be available soon. |
To improve performance for large repositories issue 1091. Most of the time was being spent in js-signals code dealing with listener priorities (which Ungit does not use) and preventing duplicates (which Ungit does not appear to need). I've created an unprioritized version of js-signals, js-unprioritized-signals. This PR makes Ungit depend use js-unprioritized-signals rather than js-signals.