Python 使用“插槽”比dict快,但启动速度较慢,有解决办法吗?
因此,我试图比dict()更快地创建和访问属性 因此,假设使用一个非常简单的类/dict,您可以看到Python 使用“插槽”比dict快,但启动速度较慢,有解决办法吗?,python,performance,class,dictionary,slots,Python,Performance,Class,Dictionary,Slots,因此,我试图比dict()更快地创建和访问属性 因此,假设使用一个非常简单的类/dict,您可以看到\uuuuuuuuuuuuuuuuuuuuuuuuuu>对于属性访问更快/等效: 导入时间信息 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
\uuuuuuuuuuuuuuuuuuuuuuuuuu>对于属性访问更快/等效:
导入时间信息
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()
启动速度要快得多
谢谢有趣的是,属性访问似乎是平价的。我想知道一个cython
扩展类型的创建速度是否快得多?我不会叫它快0.7ns。@jamesschiner,这是我的猜测。dict()是用C实现的,但该类必须经过Python对象shenigans