运行IPython/Jupyter笔记本是否会影响程序的速度?

运行IPython/Jupyter笔记本是否会影响程序的速度?,python,numpy,jupyter-notebook,ipython,Python,Numpy,Jupyter Notebook,Ipython,我正在开发一个模拟程序(有点像数值解算器)。我正在ipython笔记本上开发它。我想知道笔记本中运行的代码的速度是否与终端上运行的代码的速度相同 笔记本电脑的浏览器内存或开销以及类似的东西是否会使笔记本电脑中的代码运行速度比终端本地运行的代码运行速度慢?如果模拟中有大量的打印语句,那么可能会使运行速度慢很多 如果您在同一台计算机上运行内核服务器和浏览器,假设您的模拟将使用计算机的所有内核,那么使用笔记本会降低速度。但这只不过是在模拟运行时浏览facebook或Youtube。使用IPython的

我正在开发一个模拟程序(有点像数值解算器)。我正在ipython笔记本上开发它。我想知道笔记本中运行的代码的速度是否与终端上运行的代码的速度相同


笔记本电脑的浏览器内存或开销以及类似的东西是否会使笔记本电脑中的代码运行速度比终端本地运行的代码运行速度慢?

如果模拟中有大量的打印语句,那么可能会使运行速度慢很多


如果您在同一台计算机上运行内核服务器和浏览器,假设您的模拟将使用计算机的所有内核,那么使用笔记本会降低速度。但这只不过是在模拟运行时浏览facebook或Youtube。使用IPython的大部分开销实际上是在按shift-enter键时产生的。在纯python提示符中,REPL可能会在100ms内作出反应,而在IPython 150或类似的情况下,REPL可能会作出反应。但是,如果您关心性能,那么IPython的开销不是您应该首先关心的

我发现无论是否使用了很多打印语句,Jupyter都比Ipyton慢得多。几乎所有函数的性能都会下降,但特别是在分析大型数据帧或执行复杂计算时,我会坚持使用Ipython。

我测试了在Jupyter下学习相同的小型神经网络(1)和(2)在Anaconda提示符下运行Python(使用
exec(open(foo.py).read())
在python下或直接在Anaconda提示符下使用
python foo.py

在水蟒提示下需要107.4秒或108.2秒,在Jupyter提示下需要105.7秒


因此,没有明显的区别,次要的区别是支持Jupyter。

讽刺的是,IPython附带了一个
%timeit
魔术命令,它使这些东西非常容易测试。一个主要因素是您的程序是完全用python执行还是调用C库。例如,如果程序花费90%的时间在C语言上,那么它与C语言没有多大区别。根据我的经验,python程序可以从多处理中获益匪浅,但请参阅。我的模拟是在笔记本上开发的,模拟运行大约需要4个小时。我只是想知道,如果我将笔记本中的代码复制到py文件中,并从终端运行它,是否会加快速度。根据您的评论,似乎没有必要这样做。将其作为py文件还有其他优点(可导入性、并行运行脚本)。如果sim需要4个小时,我会调查一些性能提升(cython、多处理、IPython并行、MPI)。你有你想要达到的目标的链接吗?嗨,马特。谢谢你的回复。模拟是关于声音定位的。如果您感兴趣,这里有一个链接:模拟在该页面的末尾(搜索“runInParallel”)。每次运行大约需要10分钟,我需要运行很多次计算差异,应该比cython好得多(将克隆并尝试)。这是你的回购协议吗?看,不要对关键循环使用列表理解。这只是我的经验。显然是轶事,可能依赖于系统(与el capitan一起运行macbook Pro)