python高效使用06_while_True和while_1哪个效率更高
- 其他
- 2025-08-24 09:57:02

总结:
从字节码上来看,两者应该是等效的。但是从实际测试中来看,while True可能比while 1稍微高效一些。为什么会出现这种情况呢?在python2中True不是关键字,True会转化成1之后在进行对比,字节码会比1多,运行效率会慢。但是在python3中,True是关键字,两者的字节码是一样的,但是关键字经过优化,会比整数1效率高一些。 import dis def run_1(): while True: print("run_1") break def run_2(): while 1: print("run_2") break dis.dis(run_1) print("-------------------------------------") dis.dis(run_2)效率对比代码:
import time # import sys # import numpy as np # import pandas as pd from pyecharts import options as opts from pyecharts.charts import Bar def test_func_time(n_rows, n_times=100): a = time.perf_counter() for j in range(n_times): for _i in range(n_rows): pass b = time.perf_counter() for_loop_time = (b - a) / n_times # 测试while_true a = time.perf_counter() for j in range(n_times): for _i in range(n_rows): while True: break b = time.perf_counter() while_true_time = (b - a) / n_times - for_loop_time # 测试while_1 a = time.perf_counter() for j in range(n_times): for _i in range(n_rows): while 1: break b = time.perf_counter() while_1_time = (b - a) / n_times - for_loop_time value = round(while_true_time / while_1_time, 4) return [value, 1] if __name__ == '__main__': index_list = ["一千行", "一万行", "10万行", "100万行"] result = [] for i in [1000, 10000, 100000, 1000000]: r1 = test_func_time(n_rows=i, n_times=1000) result.append(r1) c = ( Bar() .add_xaxis(index_list) .add_yaxis("while True占用时间", [i[0] for i in result]) .add_yaxis("while 1占用时间", [i[1] for i in result]) .reversal_axis() .set_series_opts(label_opts=opts.LabelOpts(position="right")) .set_global_opts(title_opts=opts.TitleOpts(title="以while_1为基准,while_True效率")) # .render("d:/result/夏普率耗费时间对比.html") .render("./while_True和while_1的效率对比.html") )python高效使用06_while_True和while_1哪个效率更高由讯客互联其他栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“python高效使用06_while_True和while_1哪个效率更高”