【发布时间】:2014-06-14 00:36:30
【问题描述】:
这种缓慢的代码可以通过改变结构来改善,但有时很难解决。我认为原因来自存储在数组中的类。我听说内存视图用于链接 python 和 c 数组,但我对此还是很陌生(只有一些 python 知识)。
有没有办法有效地做到以下几点?
一个示例类:
cdef class ClassWithAdditionFunction:
cdef double value
def __init__(self, double value):
self.value = value
cpdef add_one(self):
self.value += 1
一个缓慢的函数:
cdef unsigned long int i, ii
cdef unsigned long int loops = pow(10, 8)
cdef double value
addition_classes = np.array([None] * 10)
for i in range(len(addition_classes)):
addition_classes[i] = ClassWithAdditionFunction(value=0)
for i in range(loops/10):
for ii in range(10):
addition_classes[ii].add_one()
非常感谢您的任何建议!
【问题讨论】:
标签: python performance function optimization cython