之前已经问过如何加速Python模块导入的问题(加速 python“导入”加载器 https://stackoverflow.com/questions/2010255/speeding-up-the-python-import-loader and Python——加速导入? https://stackoverflow.com/questions/6025635/python-speed-up-imports)但没有具体的例子,也没有产生公认的解决方案。因此,我将在这里再次讨论这个问题,但这次是用一个具体的例子。
我有一个 Python 脚本,可以从磁盘加载 3D 图像堆栈,对其进行平滑处理,然后将其显示为电影。当我想快速查看数据时,我从系统命令提示符调用此脚本。我对平滑数据所需的 700 毫秒感到满意,因为这与 MATLAB 相当。但是,导入模块还需要 650 毫秒的时间。因此,从用户的角度来看,Python 代码的运行速度只有一半。
这是我要导入的一系列模块:
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.animation as animation
import scipy.ndimage
import scipy.signal
import sys
import os
当然,并非所有模块的导入速度都同样慢。罪魁祸首是:
matplotlib.pyplot [300ms]
numpy [110ms]
scipy.signal [200ms]
我尝试过使用from
,但这并没有更快。由于 Matplotlib 是罪魁祸首,并且它因屏幕更新缓慢而闻名,因此我寻找替代方案。一种是 PyQtGraph,但导入需要 550 毫秒。
我知道一个明显的解决方案,那就是从交互式 Python 会话而不是系统命令提示符中调用我的函数。这很好,但它太像 MATLAB,我更喜欢从系统提示符中使用我的函数的优雅。
我是 Python 新手,目前不知道如何继续。由于我是新人,因此我希望获得有关如何实施建议的解决方案的链接。理想情况下,我正在寻找一个简单的解决方案(我们不是吗!),因为代码需要在多台 Mac 和 Linux 机器之间移植。
不是问题的实际答案,而是有关如何使用 Python 3.7 分析导入速度的提示tuna https://github.com/nschloe/tuna(我的一个小项目):
python3 -X importtime -c "import scipy" 2> scipy.log
tuna scipy.log
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)