【问题标题】:PyDev import times are 10x slower than using command linePyDev 导入时间比使用命令行慢 10 倍
【发布时间】:2018-01-19 09:48:09
【问题描述】:

我是 python 新手,并且在 Eclipse 中使用 PyDev,我注意到每当我尝试执行我正在处理的代码时,启动时间非常缓慢。我将其缩小到库导入。

例如,如果我运行以下代码

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 来加载几个标准库似乎也有点过头了。

谢谢!

【问题讨论】:

    标签: python eclipse pydev


    【解决方案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
    

    【讨论】:

    • 我想说的是,通过网络处理任何东西都会大大减慢速度,而且速度慢一个数量级似乎很正常(python 一遍又一遍地加载东西——取决于操作系统,它可能会缓存一些东西,但与本地相比仍然可能很慢......) - 理想情况下,使用本地 SSD ;)
    • 让我感到困惑的是,如果 Anaconda 和 PyDev 安装在本地,为什么这会很重要。除了最初通过网络打开项目文件之外,您不会期望任何网络流量?
    • 不是真的...对于任何导入,执行的 python 可能会遍历 PYTHONPATH 中可用的所有目录,因此,如果其中一个是远程的,它会在任何导入时访问网络。
    • 这正是它令人困惑的原因 - 网络上没有安装任何库
    猜你喜欢
    • 2014-01-21
    • 2019-05-06
    • 2015-05-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多