2016-12-14 28 views
0

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

在下面的代码中,我重复了我的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 

感谢您为什么会是这样发生,我能做些什么,以防止它的任何建议。

+0

你试过主分支吗?我们已经修复了一些与您的看法非常相似的问题。此外,这也许应该是Jedi的问题追踪器的一部分。 –

+0

谢谢。我按照你的建议从主站安装,现在没有问题。我一直在使用jedi-0.9.0,目前版本为pypi。据推测,造成经济放缓的原因已经确定。 – tenuej

回答

0

此问题已在最新的主分支中修复。等到Jedi 0.10.0发布。