Issue 24242: property performance regression (original) (raw)
There seems to be a significant regression in performance when using @property in Python 2.x compared to 3.x.
Test code:
class A: def init(self, x, y): self.x = x self.y = y @property def y(self): return self._y @y.setter def y(self, value): self._y = value
from timeit import timeit a = A(1, 2) timeit('a.x', 'from main import a') timeit('a.y', 'from main import a')
On my machine (Fedora Linux, x64) I get the following timings:
2.7.8: a.x : 0.05482792854309082 a.y : 0.05585598945617676
3.4.1: a.x : 0.06391137995524332 a.y : 0.31193224899470806
I.e. The performace of using a property vs a ordinary member is more or less the same in 2.7, while it incurs a 5x penalty in 3.4.