【发布时间】:2016-12-29 22:44:05
【问题描述】:
我正在尝试在 jupyter 笔记本中重写一些 vpython 脚本。到目前为止,我还没有遇到很多问题,但是我尝试重写的最后一个问题变得明显变慢了。它在 VIDLE 中运行得非常快。我将 sierraOS 与 Python 3.5.0 和 Jupyter 4.1.0 一起使用。
代码创建一些对象,然后在一个while循环中改变它们的位置。
最初循环有visual.rate(5000),但我尝试将其减少到50,但无济于事。我还尝试将对象的数量减少到只有两个,但仍然工作得很慢。这是我最简单的代码版本:
from vpython import scene, sphere, color, curve, arrow, mag, vector, rate,canvas
scene = canvas(width=800, height=600)
obj0 = sphere(pos=vector(0,0,0), radius=5e11)
obj1 = sphere(pos=vector(5e12,0,0), radius=5e11)
trail1= curve()
#some initial value
G = 6.7E-11
obj0.mass = 2.0E30
obj0.momentum = vector(0,0,0)
obj1.mass = 1.0E26
obj1.momentum = vector(0,0,0)
dt=200000.
CrashFlag=0
while(CrashFlag==0):
rate(1000)
obj1.force= -G*(obj0.mass*obj1.mass*obj1.pos)/(mag(obj1.pos)**3)
obj1.momentum = obj1.momentum+ dt*(obj1.force)
obj1.pos = obj1.pos + dt*obj1.momentum/obj1.mass
trail1.append(pos=obj1.pos)
if (mag(obj1.pos)<2.e11) :
CrashFlag=1
您能找出任何会导致 Jupyter 笔记本特别慢的原因,或者提出任何解决方法吗?否则,是否可以在 VIDLE 中输出模拟而不是在 Jupyter 笔记本中内联(而代码仍将在 Jupyter 笔记本中运行)
【问题讨论】:
标签: python performance ipython jupyter-notebook vpython