小编Vic*_*man的帖子

如何弄清楚为什么cython-izing代码会降低它的速度?

我们有一些用python编写的代码,它使用的几个类实际上只是"结构" - 这些类的实例只包含一堆字段而没有方法.例:

class ResProperties:
    def __init__(self):
        self.endDayUtilities = 0
        self.marginalUtilities = []
        self.held = 0
        self.idleResource = True
        self.experience = 0.0
        self.resSetAside = 0
        self.unitsGatheredToday = 0
Run Code Online (Sandbox Code Playgroud)

我们的主要代码使用了这个类的一堆实例.

为了加快代码速度,我想我已经对这个类进行了cython-ized:

cdef class ResProperties:

    cdef public float endDayUtilities
    cdef public list marginalUtilities
    cdef public int held
    cdef public int idleResource
    cdef public float experience
    cdef public int resSetAside
    cdef public int unitsGatheredToday

    def __init__(self):
        self.endDayUtilities = 0
        # etc: code just like above.
Run Code Online (Sandbox Code Playgroud)

但是,结果是代码现在运行速度慢了25%!

我如何找出导致代码运行速度变慢的原因?

谢谢.

python optimization cython

2
推荐指数
1
解决办法
180
查看次数

标签 统计

cython ×1

optimization ×1

python ×1