已经问过同样的问题here,但没有得到答案。
我编写了一个脚本,该脚本需要很长时间才能完成,并且正在使用一个模块(tqdm)向我提供有关其进度的反馈。通过PyCharm在远程环境上运行时,脚本性能为每秒800至1000次迭代,这产生的估计总运行时间约为4至5个小时。
当我尝试通过经典Linux命令行在同一远程环境上运行脚本时,会出现问题。在相同的环境下,在相同的环境中,使用相同的命令,但唯一的区别是我自己键入了该脚本,而不是让PyCharm替我发出了脚本,因此脚本性能下降到了每秒200-300次迭代,结果估计为10 -16小时。
在PyCharm中,我的脚本的运行配置窗口如下所示:
如您所见,使用的解释器位于整个项目使用的虚拟环境中的开发服务器上。
我不得不隐藏脚本名称和参数,您可能会发现它们很不方便,但我不认为我的问题与脚本本身或其内容有关。
为了通过命令行运行相同的脚本,这是我要做的:
cd
到我的项目文件夹export PYTHONPATH=$(pwd)
...实际上应该导致相同的行为,对吗?是的,但是速度不一样。出现这种70%的性能下降是由于我不知道的原因造成的,并且似乎在Internet上没有记录。
我也尝试过,以完美模拟Pycharm所做的事情:
export PYTHONUNBUFFERED=1
,我知道这不会改变(不会)我对此一无所知。这是某些可疑的PyCharm恶作剧的结果吗?
与PyCharm所做的任何事情相关的任何输入,甚至可以远程加快Python脚本执行的某些方面,都值得赞赏!
谢谢。