相关疑难解决方法(0)

为什么局部变量访问速度比Python中的类成员访问速度快?

在尝试解决更复杂的问题时,我开始将访问速度与局部变量与成员变量进行比较.

这是一个测试程序:

#!/usr/bin/env python

MAX=40000000

class StressTestMember(object):
    def __init__(self):
        self.m = 0

    def do_work(self):
        self.m += 1
        self.m *= 2

class StressTestLocal(object):
    def __init__(self):
        pass

    def do_work(self):
        m = 0
        m += 1
        m *= 2

# LOCAL access test
for i in range(MAX):
    StressTestLocal().do_work()

# MEMBER access test
for i in range(MAX):
    StressTestMember().do_work()
Run Code Online (Sandbox Code Playgroud)

我知道实例化StressTestMemberStressTestLocal每次迭代可能看起来不错,但在建模程序中这些基本上是Active Records是有意义的.

经过简单的基准测试,

  • LOCAL访问测试:0m22.836
  • 会员访问测试:0m32.648s

本地版本的速度提高了大约33%,同时仍然是课程的一部分.为什么?

python performance benchmarking

13
推荐指数
2
解决办法
3686
查看次数

标签 统计

benchmarking ×1

performance ×1

python ×1