动态优化运行程序

时间:2012-03-26 04:41:45

标签: optimization dynamic assembly hardware hardware-acceleration

我被告知运行程序会生成用于优化重复指令的概率数据 例如,如果“if-then-else”控制结构已被评估为TRUE 8/10次,那么下一次评估“if-then-else”语句时,条件将有80%的可能性。真正。假设结果为TRUE,此统计信息用于提示硬件将适当的数据加载到寄存器中。目的是加快这一进程。如果语句的计算结果为TRUE,则数据已加载到相应的寄存器中。如果语句的计算结果为FALSE,那么其他数据将被加载并简单地写入“更有可能”的结果。
我很难理解概率计算如何不会超出它试图改进的决策的性能成本。这真的发生了吗?它是否发生在硬件级别?这有名字吗? 我似乎可以找到有关该主题的任何信息。

1 个答案:

答案 0 :(得分:4)

这样做了。它被称为分支预测。成本非常重要,由专用硬件处理,因此成本几乎完全取决于额外的电路 - 它不会影响执行代码所需的时间。

这意味着真正的成本将是失去的机会之一 - 即,如果有其他方式设计CPU使用该数量的电路用于某些其他目的并从中获得更多。我的直接猜测是答案通常是否定的 - 在投资回报方面,分支预测通常非常有效。