C&C++   发布时间:2022-04-03  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了c – 代码分支究竟是什么大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
什么是代码分支?我已经在不同的地方看到过它,特别是有点笨拙,但从未真正虑过它?

它如何减慢程序的速度以及编码时我应该虑什么?

我看到if语句的提及.我真的不明白这些代码如何减慢代码速度.如果条件为真,请按照说明操作,否则跳转到另一组指令?我看到另一个提到“分支预测”的帖子,也许这就是我真正迷失的地方.有什么可以预测的?条件就在那里,它只能是真或假.

我不相信这是this related question的重复.链接的线程正在讨论关于未分类数组的“分支预测”.我在问什么是分支以及为什么需要预测.

解决方法

基本上想象一下工厂的装配线.想象一下,当每个项目通过装配线时,它将转到员工1,然后是员工2,最多转移到员工5.员工5完成后,该项目已完成并准备好打包.因此,所有五名员工可以同时处理不同的项目,而不必只是在彼此等待.与大多数装配线不同,每次员工1开始处理新项目时,它可能是一种新类型的项目 – 而不是一遍又一遍的相同类型.

好吧,无论出于什么奇怪和富有想象力的原因,想象一下经理站在装配线的尽头.他有一个清单说:“首先制作这个项目.然后制作那种类型的物品.然后是那种类型的物品.”等等.当他看到员工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,请注明来意。