jaxbot / github-issues.vim

Github issue lookup in Vim
http://jaxbot.me/articles/github-issues-vim-plugin-5-7-2014
Other
405 stars 28 forks source link

github-issues may cause extreme slowdown in vim #140

Open JonathanReeve opened 9 years ago

JonathanReeve commented 9 years ago

I noticed that when I ran git commit, there would be a 30- to 40-second pause while vim loads. I did some profiling and found that this was caused by the function <SNR>24_setupOmni(). A little grepping found this in github-issues.vim, and when I disabled github-issues, vim started up instantly. So I think there may be something with github-issues that causes vim to slow down considerably. Maybe I have lots and lots of issues in all my repositories, and so it takes a while to load all of these? I'm not sure what it could be. But I'm happy to run some debugging commands on my setup if it will help debug this issue.

TheJefe commented 9 years ago

Does this happen on a public repo? If so, let us know, and we can probably use that to reproduce this, if it has something to do with that particular repo.

jaxbot commented 9 years ago

I can reproduce this. It's an issue with network. The plugin is supposed to timeout automatically but sometimes that doesn't seem to work. I'll dig into it after this week. Finals and stuff :/

On Wed, Apr 15, 2015, 10:17 PM Jeff Koenig notifications@github.com wrote:

Does this happen on a public repo? If so, let us know, and we can probably use that to reproduce this, if it has something to do with that particular repo.

— Reply to this email directly or view it on GitHub https://github.com/jaxbot/github-issues.vim/issues/140#issuecomment-93619066 .

JonathanReeve commented 9 years ago

That was happening on the public repo mlaa/digitalpedagogy. I thought it could be repo-related, since that particular repo has a bunch of images (and I know git isn't great with binaries), but I was seeing that issue on other repos, as well.

jaxbot commented 9 years ago

Problem is basically that there are a ton of urllib open calls in the plugin, and 90% of them have no timeouts. Since this all runs on a single thread, it causes Vim to freeze. I've played with threading before but had some ugly results, honestly there just needs to be a standardized way in the plugin to make an HTTP call in async.

wikimatze commented 9 years ago

Hi @jaxbot I tried g:gissues_async_omni = 0 and let g:gissues_lazy_load = 1 and it is still slow when doint a :Gcommit - any other things is working great for creating a new issue or to look up issues. How many urlib librtaries have you tried out? Is there a way to help you out?

jaxbot commented 9 years ago

It seriously needs some fixing down at the core. I started some work on this over the summer but got sidetracked with other projects. If you want to dive into it, feel free, otherwise I'll get it fixed sometime in the future