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

Signatures unusably slow on large codebase #295

Closed
eevee opened this issue Jul 31, 2014 · 2 comments
Closed

Signatures unusably slow on large codebase #295

eevee opened this issue Jul 31, 2014 · 2 comments

Comments

@eevee
Copy link

eevee commented Jul 31, 2014

I tried jedi at $work today and the cursor movement was so ridiculously laggy that I could barely write any code. Some hamfisted profiling revealed that show_call_signatures was blocking vim for almost half a second for every keypress in Insert mode.

Obviously I'm turning this feature off :) This was a decently-sized file (1000 lines?) with lots of imports (dozens) in a very large codebase (millions of lines?), but there looks to be clear room for improvement here:

  • I get the delay even when the cursor isn't inside a function call, where it ought to be pretty easy to notice that nothing needs doing.
  • From a quick glance, I think jedi is reparsing the entire file every time I add a character? Surely if it already has an AST for a pristine file and the only change I've made is to type a w on a new line, it can make some use of the information it already had?
@davidhalter
Copy link
Owner

Duplicate of #217.

Please update to Jedi 0.8.1. 0.8.0 was buggy in that it always reparsed the file (well or at least parts of it). There's still room for improvement. But the bigger issue is, that it's very hard to do async in VIM. :)

@davidhalter
Copy link
Owner

show_call_signatures is now way faster. For a multitude of reasons. Jedi has been rewritten.

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