Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/343.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Python中加速以下代码?_Python - Fatal编程技术网

如何在Python中加速以下代码?

如何在Python中加速以下代码?,python,Python,我试图想出一种更快的方法来实现这段代码。尝试对glider对象的init进行矢量化,但无法确定如何传入多个值或对每个对象执行诸如move()函数之类的操作 def myFunc(fairy_dust): for particle in fairy_dust: temp = glider(particle[0], particle[1], particle[2], particle[3]) temp = temp.move() partic

我试图想出一种更快的方法来实现这段代码。尝试对glider对象的init进行矢量化,但无法确定如何传入多个值或对每个对象执行诸如move()函数之类的操作

def myFunc(fairy_dust):

    for particle in fairy_dust:
        temp = glider(particle[0], particle[1], particle[2], particle[3])
        temp = temp.move()
        particle[0] = temp.x
        particle[1] = temp.y
        particle[2] = temp.heading

你怎么知道这是你的瓶颈?比如,你有没有分析过自己的表现,或者你是否还处于起步阶段,并希望让这一优步表现更出色?因为这里的一些人将要引用“过早优化是万恶之源”这句话。除了并行化for循环(例如,在线程A上处理一半的粒子,在线程B上处理一半的粒子)之外,你真的不能做太多的工作来显著加快这一速度。尝试减少fairy_dust中的粒子数:我认为该循环中的大部分开销来自于创建一个glider实例来调用其移动方法,然后复制其高级状态。我将把move方法的主体内联到循环中。我认为我们需要更多的上下文来了解glider的功能,只需调用.move()方法。@dad。谢谢这就是要走的路,我看了move方法实际在做什么,然后用np在myFunc中进行了计算,它现在似乎运行得稍微快一点。