首页 / 知识
关于架构:使用短路评估的好处
2023-04-16 22:40:00

Benefits of using short-circuit evaluation
在大多数语言中, 还有,有人知道通常所说的短路评估吗?这个问题是在我发现我的编程朋友从未听说过短路评估并且说它不常见,也没有在许多语言中发现并且在管道中效率低下之后出现的。我不确定最后一个,所以问大家! 好的,我想想一个不同的例子来说明我的朋友可能来自哪里。他认为,由于并行评估如下语句:
将使系统崩溃,没有短路的架构(因此不允许上述语句)将在处理以下语句时更快:
因为它不能并行执行(a),所以不能并行执行(b)。在这种情况下,允许短路的语言会比不允许短路的语言慢。 我不知道那是真的。 谢谢 如果语句是(分支基本上是goto),则短路评估以相同的方式转换为汇编语言的分支,这意味着它不会比if语句慢。 分支通常不会使管道停顿,但是处理器将猜测是否采用了分支,如果处理器错误,则必须清除自管道作出错误猜测以来发生的所有事情。 短路评估也是它的最常用名称,在大多数语言中都以某种形式出现。 n 老实说,我不会为此担心。测试布尔值确实非常快。仅当第二个表达式具有副作用时,短路才变得有趣/有用:
...或取决于第一次测试:
n n n n n 大多数语言都会对布尔表达式进行短路评估。我一直听到它被称为短路评估。 该问题中的示例是一个非常简单的示例,实际上并没有提供太多的性能优势。当表达式要计算复杂时,可以带来性能优势。 作为一个很好的例子,假设一个游戏程序具有以下内容:
在这种情况下,冲突检测比活动检查要昂贵得多。如果系统中有许多不活动的对象,则性能将得到显着提高。 我使用的一个有用的短路是这样的:
在我看来,这非常可读,并且功能很好。通常,我会尽量避免过多的嵌套,因为这会导致代码难看。 我的所有意见。 如果不停工怎么办?实际上,如果a和b都是变量,而不是带有副作用的表达式,则可以由良好的编译器并行加载它们。除了增加行数之外,使用更多ifs没有任何好处。确实,这是第二次猜测编译器是最糟糕的一种。 这称为短路评估。 n n 我对流水线一无所知,但是短路评估是许多语言的共同特征(这也是我所知道的名称)。在C中 根据上下文,也可以称为"防护"。 我几乎以我使用过的每种语言都看到过它-大约有十几种语言。 |
最新内容
相关内容
linux常用命令c语言?
linux常用命令c语言?,系统,工作,信息,管理,基础,命令,地址,目录,简介,时间,linux常用的20个命令?系统管理相关命令:df、top、free、quota、at、linux命令行设置语言?
linux命令行设置语言?,系统,管理,环境,国家,工具,电脑,软件,文化,底部,语言,linux命令行下怎样改变语言1、将内容改为:LANG=zh_CN.UTF-8LANGUAGlinux使用命令改语言?
linux使用命令改语言?,系统,工作,管理,电脑,设备,字符集,中文,命令,语言,虚拟机,请问linux虚拟机装好以后怎么把英文改成中文?1、vmware设置中c语言写linux命令?
c语言写linux命令?,系统,工具,代码,智能,工作,环境,情况,位置,命令,文件,如何在C语言编程中调用linux系统终端下的命令1、C语言有一个system函linux汇编语言命令?
linux汇编语言命令?,系统,地址,代码,数据,网络,平台,平均,位置,灵活,工作,汇编语言指令的基本格式是什么1、有以下几种基本格式:标号,又称为指令linux汇编语言命令?
linux汇编语言命令?,系统,地址,代码,数据,网络,平台,平均,位置,灵活,工作,汇编语言指令的基本格式是什么1、有以下几种基本格式:标号,又称为指令linux命令是什么语言?
linux命令是什么语言?,系统,环境,代码,传播,管理,语言,操作系统,源码,自由,部分,dos和linux的命令行里面用的是什么语言?1、DOS/Windows/Linuxlinux改语言命令行?
linux改语言命令行?,系统,环境,工具,密码,概念,地方,软件,通信,管理,国际,linux命令行下怎样改变语言将内容改为:LANG=zh_CN.UTF-8LANGUAGE=zh_linux命令行c语言?
linux命令行c语言?,代码,系统,工具,环境,工作,保险,发行,命令,文件,终端,linux终端下如何进行C语言编译1、在Linux下面,如果要编译一个C语言源c语言在linux命令?
c语言在linux命令?,系统,工作,管理,命令,保险,基础,环境,信息,文件,语言,linux系统的命令是什么linux常用命令有pwd命令、cd命令、ls命令、catlinux编写c语言命令?
linux编写c语言命令?,系统,基础,环境,代码,盘面,保险,百度,情况,数据,工具,在Linux系统中,如何运行一个C语言程序?编译。由.c文件生成.o文件,写linux改变语言命令?
linux改变语言命令?,系统,管理,网上,官方网站,情况,服务,中文,语言,命令,终端,linux命令行下怎样改变语言将内容改为:LANG=zh_CN.UTF-8LANGUAGE