大佬教程收集整理的这篇文章主要介绍了c – 代码分支究竟是什么,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
它如何减慢程序的速度以及编码时我应该考虑什么?
我看到if语句的提及.我真的不明白这些代码如何减慢代码速度.如果条件为真,请按照说明操作,否则跳转到另一组指令?我看到另一个提到“分支预测”的帖子,也许这就是我真正迷失的地方.有什么可以预测的?条件就在那里,它只能是真或假.
我不相信这是this related question的重复.链接的线程正在讨论关于未分类数组的“分支预测”.我在问什么是分支以及为什么需要预测.
好吧,无论出于什么奇怪和富有想象力的原因,想象一下经理站在装配线的尽头.他有一个清单说:“首先制作这个项目.然后制作那种类型的物品.然后是那种类型的物品.”等等.当他看到员工5完成每个项目并继续下一个项目时,经理然后告诉员工1哪个项目类型开始工作,当时查看他们在列表中的位置.
现在让我们说这个列表中有一点 – “计算机指令序列” – 它说:“现在开始制作一个咖啡杯.如果是你完成制作杯子的夜晚,那么就开始做一个冷冻晚餐.如果是白天然后开始制作一袋咖啡渣.“这是你的if语句.由于经理,在这种虚假的例子中,他真的不知道一天中的什么时间,直到他在杯子结束后真正看到杯子,他可以等到那个时候召唤下一个项目 – 冷冻晚餐或咖啡渣.
问题是,如果等到最后一秒钟那样 – 他必须等到绝对确定一天什么时候杯子完成,以及下一个项目将会是什么 – 然后在工人5完成之前,工人1-4根本不会做任何工作.这完全违背了流水线的目的!所以经理猜测.工厂一天开放7小时,晚上只开放1小时.所以杯子很可能在白天完成,从而保证咖啡渣.
因此,一旦员工2开始在咖啡杯上工作,经理就会向员工拨打咖啡场1.然后,装配线就像往常一样继续前进,直到员工5完成杯子.那时经理终于看到了一天中的什么时间.如果是白天,那真是太棒了!如果是夜晚,一切都在咖啡杯被丢弃之后开始,必须开始冷冻晚餐. …因此,分支预测实际上是经理临时冒险的地方,当他正确时,线路移动得更快.
伪编辑:
它主要与硬件有关.主要的搜索短语可能是“计算机管道cpu”.但是指令列表已经完成了 – 只是指令列表中有分支;它并不总是1,2,3等.但是当管道的第5阶段正在完成指令10时,第1阶段已经可以处理指令14.通常计算机指令可以像这样分解并分段处理.如果阶段1-n同时处理某些事情,并且之后没有任何事情被破坏,那么在开始另一阶段之前,这比完成一阶段更快.
以上是大佬教程为你收集整理的c – 代码分支究竟是什么全部内容,希望文章能够帮你解决c – 代码分支究竟是什么所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。