2017-08-11 74 views
4

我是python新手,在Eclipse中使用PyDev我每次嘗試執行我正在執行的代碼時都注意到極慢的啓動時間。我將其縮小到圖書館進口。PyDev導入時間比使用命令行速度慢10倍

例如,如果我運行下面的代碼

import timeit 
startTime = timeit.default_timer() 

import numpy as np 
print("loaded numpy: ", timeit.default_timer() - startTime) 

import pandas as pd 
print("loaded pandas: ", timeit.default_timer() - startTime) 

from pandas import ExcelWriter 
print("loaded sub-pandas 1: ", timeit.default_timer() - startTime) 

from pandas import DataFrame 
print("loaded sub-pandas 2: ", timeit.default_timer() - startTime) 

import timeit 
print("loaded timeit: ", timeit.default_timer() - startTime) 

from sqlalchemy.sql.expression import false 
print("loaded sqlalchemy: ", timeit.default_timer() - startTime) 

import os 
print("loaded os: ", timeit.default_timer() - startTime) 

它將基準時間的PyDev爲:

loaded numpy: 6.791420515378803 
    loaded pandas: 13.315319435084618 
    loaded sub-pandas 1: 13.31538835744522 
    loaded sub-pandas 2: 13.315418989605488 
    loaded timeit: 13.315443057731413 
    loaded sqlalchemy: 13.668371856921556 
    loaded os: 13.668398113058927 

,同時用命令行執行這將是:

loaded numpy: 1.6967744335238362 
loaded pandas: 3.7941380255968165 
loaded sub-pandas 1: 3.7944563812624534 
loaded sub-pandas 2: 3.795081787867914 
loaded timeit: 3.795144146194173 
loaded sqlalchemy: 3.915562085554165 
loaded os: 3.915884087905548 

任何人都可以幫助實現這一目標嗎?即使使用命令行選項4s加載一些標準庫似乎也是一種矯枉過正。

謝謝!

回答

1

經過兩天的撕裂我的頭髮,問題在某種程度上與項目所在的位置有關。如果項目py文件位於本地,則運行速度很快,如果它們在辦公室網絡中,事情會顯着減慢。

請注意,anaconda 3.6安裝位於本地。另請注意,我們的網絡延遲並不是那麼糟糕。所以我不太確定爲什麼會發生這種行爲。

因此,將項目移至C驅動器會加速達到可接受的加載時間。

下面是輸出的新項目位於本地:

loaded numpy: 0.14122337554736752 
loaded pandas: 0.5681306651263066 
loaded sub-pandas 1: 0.568159473943701 
loaded sub-pandas 2: 0.5681747900238348 
loaded timeit: 0.5681882827610955 
loaded sqlalchemy: 0.6529934184615654 
loaded os: 0.6530225919475344 
+0

我會說,有在網絡上什麼事情都有可能顯着放緩,幅度較慢的訂單似乎是相當正常(蟒蛇超過了負荷的事情, over - 取決於操作系統,它可能會緩存一些內容,但與使用本地操作系統相比,它仍然很慢......) - 理想情況下,使用本地SSD;) –

+0

對我而言,混淆的一點是爲什麼會這樣如果Anaconda和PyDev安裝在本地,則很重要。除了通過網絡初始打開項目文件之外,您不會期望任何網絡流量? – afora377

+0

不是真的......任何導入執行的python都可能遍歷PYTHONPATH中的所有可用目錄,因此,如果其中一個是遠程的,它將在任何導入時觸發網絡。 –

相關問題