संदर्भ: ओपनजीएल में 2 डी शिखर के मेरे पायथन कोड पास सरणी।फ्लोट में ट्यूल्स की सूची से सी सरणी बनाने के लिए पाइथन में सबसे तेज़ तरीका क्या है?
मैंने 2 दृष्टिकोणों का परीक्षण किया, एक प्रकार के साथ, दूसरा संरचना के साथ, दूसरा बाद में दो गुना तेज है।
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 पर भी पोस्ट किया है, जो नीचे दिए गए समान उत्तर लौटाता है। –