2017-08-11 39 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中的所有可用目录,因此,如果其中一个是远程的,它将在任何导入时触发网络。 –

相关问题