Python jedi自动完成功能逐渐变慢

时间:2016-12-14 18:49:58

标签: python python-jedi

使用jedi自动完成库,我发现每次调用Script.completions()都会使连续调用变慢。

在下面的代码中,我重复了我的run函数三次。它不清楚为什么,但每一个都需要比以前更长的时间。

import jedi
import time

def measure(source):
  start = time.time()
  script = jedi.Script(source, line=1, column=0)
  script.completions()
  print(' %-20s%f' % (source, time.time() - start))

def run():
  start = time.time()
  measure('min(1,2)')
  measure('max(1,2)')
  measure('print("Hello")')
  measure('abs(1)')
  measure('set()')
  measure('dict()')
  print('Total: %f' % (time.time() - start))

run()
run()
run()

结果:

 min(1,2)            0.016168
 max(1,2)            0.014470
 print("Hello")      0.016843
 abs(1)              0.019889
 set()               0.023725
 dict()              0.025874
Total: 0.117067
 min(1,2)            0.029772
 max(1,2)            0.034207
 print("Hello")      0.034982
 abs(1)              0.038538
 set()               0.041346
 dict()              0.054610
Total: 0.233565
 min(1,2)            0.047249
 max(1,2)            0.050380
 print("Hello")      0.053113
 abs(1)              0.056774
 set()               0.059072
 dict()              0.062129
Total: 0.328825

感谢您提供有关为何会发生这种情况的建议,以及我可以采取哪些措施来阻止它。

1 个答案:

答案 0 :(得分:0)

此问题已在最新的主分支中修复。等到Jedi 0.10.0将被释放。