2016-12-14 3 views
0

jediオートコンプリートライブラリを使用して、Script.completions()を呼び出すたびに連続した呼び出しが遅くなることがわかりました。Pythonのjediオートコンプリートが次第に遅くなります

次のコードでは、runの機能を3回繰り返します。それはなぜ私には分かりませんが、それぞれが以前よりも時間がかかります。

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

マスターブランチを試しましたか?私たちは、あなたと非常によく似たいくつかの問題を修正しました。また、これはおそらくジェダイの課題トラッカーの一部であるべきです。 –

+0

ありがとうございます。あなたが提案したようにマスターからインストールしましたが、今問題はありません。私はjedi-0.9.0を使用していましたが、現在のバージョンはpypiです。おそらく、減速の原因となっていたものはすでに修正されています。 – tenuej

答えて

0

この問題は、最新のmasterブランチで修正されています。 Jedi 0.10.0がリリースされるまで待ってください。