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

被折叠的 条评论
为什么被折叠?



