首页 > 解决方案 > Try Catch 的分支预测

问题描述

我最近阅读了这个关于分支预测的非常有趣且评价很高的问题,它让我思考 - try-catch 子句如何影响分支预测(在 java 中)?有很多关于 if/else 的信息,但似乎没有人关注这方面。

分支预测器是否曾经预测会抛出异常?还是相当于每次都猜错?

让我们把它放在上下文中。假设我们有一个List充满数字和单词的字符串。与某些分支预测优化的等效代码相比,以下代码会非常慢吗?

List<String> list = Arrays.asList("1", "some", "3", "words", "12", "in here");

for(String s : list){
  try{
    int number = Integer.parseInt(s);
    // yay - it's a number, do something.
  }catch(Exception e){
    //this is a word - do something else.
  }
}

或者这是否大致相当于if(){}else{}分支预测方面的子句?

标签: javabranch-prediction

解决方案


推荐阅读