python基础操作性能测试2

本文详细比较了Python中一系列基础操作在大量迭代下的性能,包括循环、条件判断、位移、除法等,并展示了时间消耗。适合理解Python性能优化和循环效率评估。

python基础操作性能测试2

python3 code

#!/usr/bin/python
# -*- coding: utf-8 -*-
#####################################
# File name : python_base_op_test.py
# Create date : 2021-07-17 21:24
# Modified date : 2021-09-04 16:43
# Author : DARREN
# Describe : not set
# Email : lzygzh@126.com
#####################################

import time
a = [100000000, 0, 0]

def time_measure(x):
    def fun():
        start = time.time()
        x()
        end = time.time()
        print("use time: %.4f s" % (end - start))
    return fun

@time_measure
def func1():
    for i in range(a[0]): pass
    print("循环%s次" % a[0])

@time_measure
def func3():
    for i in range(a[0]):
        if i & 1: pass
    print("循环+判断 i & 1 %s次" % a[0])

@time_measure
def func2():
    for i in range(a[0]):
        if i & 1 == True: pass
    print("循环+判断 i & 1 == True %s次" % a[0])

@time_measure
def func4():
    for i in range(a[0]):
        if i % 2: pass
    print("循环 + 判断 i %% 2 %s次" % a[0])

@time_measure
def func5():
    for i in range(a[0]):
        if i % 2 == 1: pass
    print("循环 + 判断i %% 2 == 1 %s次" % a[0])

@time_measure
def func6():
    for i in range(a[0]):
        if i >> 1 : pass
    print("循环 + 判断i >> 1 %s次" % a[0])

@time_measure
def func7():
    for i in range(a[0]):
        if i >> 1 == 1: pass
    print("循环 + 判断i >> 1 == 1 %s次" % a[0])

@time_measure
def func8():
    for i in range(a[0]):
        i >> 1
    print("循环 + 位移 i >> 1 %s次" % a[0])

@time_measure
def func9():
    for i in range(a[0]):
        i // 2
    print("循环 + 除2  i // 2 %s次" % a[0])

@time_measure
def func10():
    for i in range(a[0]):
        t = i >> 1
    print("循环 + 位移 + 赋值 t = i >> 1 %s次" % a[0])

@time_measure
def func11():
    for i in range(a[0]):
        t = i // 2
    print("循环 + 除2 + 赋值 t = i // 2 %s次" % a[0])

@time_measure
def func12():
    l = [i for i in range(a[0])]
    for i,num in enumerate(l):
        pass
    print("循环 + 枚举 索引及数组值 for i, num in enumerate(l) %s次" % a[0])

@time_measure
def func13():
    l = [i for i in range(a[0])]
    for i in range(len(l)):
        num = l[i]
    print("循环 + 通过索引获取数组值 num = l[i] %s次" % a[0])

func1()
func2()
func3()
func4()
func5()
func6()
func7()
func8()
func9()
func10()
func11()
func12()
func13()

output

循环100000000次
use time: 1.2259 s
循环+判断 i & 1 == True 100000000次
use time: 4.7251 s
循环+判断 i & 1 100000000次
use time: 3.9066 s
循环 + 判断 i % 2 100000000次
use time: 2.7588 s
循环 + 判断i % 2 == 1 100000000次
use time: 3.3641 s
循环 + 判断i >> 1 100000000次
use time: 3.5998 s
循环 + 判断i >> 1 == 1 100000000次
use time: 4.2133 s
循环 + 位移 i >> 1 100000000次
use time: 3.2792 s
循环 + 除2  i // 2 100000000次
use time: 3.1287 s
循环 + 位移 + 赋值 t = i >> 1 100000000次
use time: 3.3151 s
循环 + 除2 + 赋值 t = i // 2 100000000次
use time: 3.1707 s
循环 + 枚举 索引及数组值 for i, num in enumerate(l) 100000000次
use time: 5.2242 s
循环 + 通过索引获取数组值 num = l[i] 100000000次
use time: 5.6349 s
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值