python:他们说性能优化得这样那样?真可以优化吗?能快多少?

性能优化

我相信你已经看到过够多的 python性能 优化相关的文章了,它们都介绍了非常多的性能优化点。但大部分只有代码,没有直观地告诉你能快多少。

这时候你可能会直接使用那些文章中的优化点来优化代码,但你有没有想过 真的能优化吗?如果能优化 能快多少 ?

这篇文章将来探索市面上比较多的优化性能点,通过示例和实际数据咱们来了解了解到底能快多少!

前期准备

为了测试优化花费时间,使用自己定义的一个函数来进行判断:

import time
from contextlib import contextmanager


@contextmanager
def time_diff():
    start = time.time()
    try:
        yield
    finally:
        end = time.time()
        print(f'共花费 {end - start} s')

为了公平起见,所有示例代码将运行三次,并求出平均值。

本文系统为 windows 10,python版本为 3.9.8,内存 32GB,CPU为 Intel(R) Core(TM) i7-10700 CPU @ 2.90GHz 2.90 GHz

1、列表推导式优化

列表推导式应该是说的最多的,我也相信它能为你程序带来性能提升,不过我们还是来看看测试结果。

接下来根据一个示例来对比一下前后,看看能提升多少?

示例代码

# 未使用优化方案
def normal(data):
    total = 0
    for item in data:
        a = item['a']
        b = item['b']
        total += (b - a)

    print(total)


# 使用优化方案
def optimize(data):
    total = sum([item['

你可能感兴趣的:(python,开发语言)