Python 3中的类实例化比Python 2慢

2024-04-26 23:14:40 发布

您现在位置:Python中文网/ 问答频道 /正文

我偶然发现一个从大数据文件生成类的简单程序在Python2.7和3.5中运行得更快。我读到here说简单枚举速度减慢的原因是使用了“无限精度”整数,但即使我尝试实例化这个类的简单测试,我也发现Python3速度明显较慢:

class Benchmark(object):
    def __init__(self):
        self.members = ['a', 'b', 'c', 'd']


def test():
    test = Benchmark()

if __name__ == '__main__':
    import timeit
    print(timeit.timeit("test()", setup="from __main__ import test"))

我认为这可能与每个类实例的大小有关,但是Python3实例小于2(56比64)

^{pr2}$

我尝试过很多关于这个主题的变体,包括在不同的机器上使用3.4版本,但仍然得到相同的结果。你知道怎么回事吗?在


Tags: 实例testimportself程序heremain数据文件
1条回答
网友
1楼 · 发布于 2024-04-26 23:14:40

你不是在测量类实例化的时间,而是在测量类实例化,加上赋值,加上列表创建。。。在

以下是一个正确的基准:

$ python -m timeit -s 'class C(object): pass' 'C()'
10000000 loops, best of 3: 0.0639 usec per loop
$ python3 -m timeit -s 'class C(object): pass' 'C()'
10000000 loops, best of 3: 0.0622 usec per loop

如您所见,Python3速度快得多。在

相关问题 更多 >