If statement 消除if-else以提高流水线体系结构中的性能

If statement 消除if-else以提高流水线体系结构中的性能,if-statement,optimization,concurrency,exception-handling,If Statement,Optimization,Concurrency,Exception Handling,我的教授坚持通过省略“if-else”结构或“循环”结构来编写“真正连续”的代码。 他的论点是,任何分支指令都会导致管道刷新,效率低下。 他建议使用信号和异常处理。 也可以使用某些标志,即溢出标志、符号标志、进位标志来替换if-else条件。 我的问题是这样一个计划是否可行。如果是,它真的有效吗?示例会很有帮助。这种微优化在高度计算密集的循环中是有意义的,在这种循环中,减少几个周期可以产生显著的效果。有几个但是: 如果代码不够成熟,这样的优化可能会过早产生反效果 它对于优化已经运行得很快的代码

我的教授坚持通过省略“if-else”结构或“循环”结构来编写“真正连续”的代码。
他的论点是,任何分支指令都会导致管道刷新,效率低下。
他建议使用信号和异常处理。
也可以使用某些标志,即溢出标志、符号标志、进位标志来替换if-else条件。

我的问题是这样一个计划是否可行。如果是,它真的有效吗?
示例会很有帮助。

这种微优化在高度计算密集的循环中是有意义的,在这种循环中,减少几个周期可以产生显著的效果。有几个但是:

  • 如果代码不够成熟,这样的优化可能会过早产生反效果

  • 它对于优化已经运行得很快的代码没有多大用处

  • 使用分析来确定瓶颈在哪里

  • 只有汇编语言允许您访问算术标志

  • 好的编译器知道诀窍,并在一定程度上为您完成工作

  • 如果您关心分支,那么还需要关心分区和内存访问模式

随着现代处理器和高级语言(无论是编译的还是解释的)目前的复杂程度,您对实际生成的代码的控制越来越少