首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >解释语言中的If/Else和Switch效率比较

解释语言中的If/Else和Switch效率比较
EN

Stack Overflow用户
提问于 2013-03-16 06:04:29
回答 1查看 170关注 0票数 1

我知道在编译源代码时,编译器会以不同的方式对待if/elseif/elseswitch语句,从而使switch语句至少与相应的switch语句一样有效,而且通常更有效。这通常是通过在编译时构建在运行时使用的跳转表来完成的。但是,对于解释型语言(未编译),使用switch语句是否会显著提高效率?当然,解释器不能预先构建跳转表来提高switch语句的效率。

与相应的一组if/elseif/else语句相比,解释器处理switch语句的方式是否可以提高switch语句的效率?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-03-31 15:53:20

我的猜测是,在解释语言中,使用switch语句的效率优势确实比编译语言小;我能想到的唯一实际好处是,在switch语句中,操作数(与不同的“case”相比较的那个)只会被计算一次,并且会立即保存在一个寄存器中,该寄存器不会改变,只与不同的“case”相比较,而if语句可能会遗漏这一位,并重新计算(即使代价只是从内存中读取)每个if子句的操作数。

此外,您还应该考虑可读性。在大多数情况下,这种性能差异可以忽略不计,您应该选择使您的代码更容易阅读和理解的选项。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15442812

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档