使用__slots__比dict快,但启动速度较慢,任何解决方法?

时间:2018-02-01 14:22:46

标签: python performance class dictionary slots

所以我想尝试比dict()

更快的创建+属性访问

所以假设一个非常简单的类/字典,您可以看到__slots__对于属性访问更快/等效: 导入时间

class A:
    __slots__ = ('a',)

    def __init__(self, a):
        self.a = a

a = A(10)
v = {'B': 10}

%timeit A.a
%timeit v['B']
10000000 loops, best of 3: 28.3 ns per loop
10000000 loops, best of 3: 29 ns per loop

但如果你测试速度,包括启动课程/字典,结果就会大不相同:

%timeit A(10).a
%timeit {'B': 10}['B']
1000000 loops, best of 3: 216 ns per loop
10000000 loops, best of 3: 58.8 ns per loop

有没有办法加快课程的启动阶段?为什么dict()的启动速度要快得多?

谢谢!

0 个答案:

没有答案