【发布时间】:2011-05-08 14:20:55
【问题描述】:
上下文:我的 Python 代码将二维顶点数组传递给 OpenGL。
我测试了 2 种方法,一种使用 ctypes,另一种使用 struct,后者快两倍以上。
from random import random
points = [(random(), random()) for _ in xrange(1000)]
from ctypes import c_float
def array_ctypes(points):
n = len(points)
return n, (c_float*(2*n))(*[u for point in points for u in point])
from struct import pack
def array_struct(points):
n = len(points)
return n, pack("f"*2*n, *[u for point in points for u in point])
还有其他选择吗? 关于如何加速此类代码的任何提示(是的,这是我的代码的瓶颈之一)?
【问题讨论】:
-
我也将这个问题交叉发布到新闻组 gmane.comp.python.opengl.user,它返回了类似的答案。