当前位置:网站首页>循环嵌套问题:为什么大循环在内,小循环在外可以提高程序的运行效率
循环嵌套问题:为什么大循环在内,小循环在外可以提高程序的运行效率
2022-06-29 06:39:00 【只管码】
很多人觉得,循环嵌套可以任意嵌套,无论循环次数的大小;
但是事实上并不是这样;
程序对于计算机来说,最终都会编译生成计算机可以识别的指令;
如今的计算机为了提高效率,指令执行机制都会存在预处理指令的分支;
对于循环会存在转移指令的情况,比如一个100次的循环,除第一次和最后一次预测指令出现错误,其他预测的指令都可以预测循环体内的指令;避免了执行转移指令时重新取出新指令造成的时间浪费。
对于两个A和B两个循环来说,当A远大于B的时候,循环会有嵌套的两种情况
第一种情况:A在外,B在内,每次进行循环的时候,B都会出现两次错误,一共循环A次;A循环本身也会出现两次预测错误,所以最终得出的指令预测错误是A*2 +2 ;
第二种情况:B在外,A在内,每次循环都会出现2次预测错误,一共循环B次;B循环本身也会出现两次错误,所以,最终得出的指令预测错误是B*2 + 2;
因为A远大于B,所以最终第一种方式预测错误的次数A*2 +2>B*2 + 2;第一种情况重新取新指令造成更多的时间浪费;
所以,在处理循环嵌套的时候,“大循环在内,小循环在外”是很好的选择;
边栏推荐
猜你喜欢

Use of parameter in Simulink for AUTOSAR SWC

cv2.cvtColor

九州云助力内蒙古“东数西算”工程,驱动测绘行业智慧新生态

A hybrid model of machine learning notes time series

In vscade, how to use eslint to lint and format
What tools do testers need to know

机器学习笔记 - 时间序列使用机器学习进行预测

Redis in NoSQL database (4): redis publishing and subscription

关于数据库,你应该知道的事情

Solve the problem that NPM does not have permission
随机推荐
Imx6dl4.1.15 supports EIM bus (upper) - actual operation and modification.
Redis of NoSQL database (II): introduction to redis configuration file
SAP UI5 初学 ( 一 )、简介
关于工作方法和高效工作的建议
1183: patient queue
Markdown skill tree (1): introduction to markdown
Solve the problem that NPM does not have permission
示波器 符号
Redis in NoSQL database (4): redis publishing and subscription
什么是测试架构师
Markdown 技能树(5):图片
Markdown 技能树(2):段落及强调
In vscade, how to use eslint to lint and format
jmeter 用beanshell导入自己jar包老是查找不到
What tools do testers need to know
KingbaseES 中select distinct on 语句
Unexpected exception ... code: Badrequest when downloading Xilinx 2018.2
查看tensorflow是否支持GPU,以及测试程序
2022.6.27-----leetcode.522
When the soft keyboard appears, it makes my EditText field lose focus