小编Jag*_*ags的帖子

当99%的时间对象不为空时,空检查与try/catch

通常我更喜欢空检查.但在目前的情况下,我知道大部分时间我的if条件都会通过,并且很少有合法的场景,其中object可能为null.

此外,负载是巨大的(约500万次电话/小时)

现在我试图从性能角度找出哪种方式更好.已经检查过java中的try/catch vs null检查,但我的情况是唯一的.

还检查哪个更快,在java中尝试catch或if-else(WRT性能)但是这个和上面的都是在通用上下文中,其中通过/失败比率的知识不可用.

public void process(Job job) {
    //... some code which processes job

    SubJob subJob = job.getSubJob();
    if(subJob != null) {  // 99% of the time this will pass
        //.. do something
    }               
}
Run Code Online (Sandbox Code Playgroud)

尝试/捕捉版本

public void process(Job job) {
    //... some code which processes job

    SubJob subJob = job.getSubJob();
    try {
        //.. do something  
    }catch(NullPointerException e) { //This may occure only 1% of the time. 
        //...   
    }               
}
Run Code Online (Sandbox Code Playgroud)

更新:

获胜者是空检查.在Try/catch中,内部JVM将执行空检查并且无论如何都会抛出NPE,并且在JVM中创建异常处理(堆栈等的创建)将是开销.另外,根据另一个答案,现代CPU足够聪明,可以通过良好的预测来处理这些情况,在我的独特案例中,这些预测总是有利于.

我还编写了程序(在我的名字下面发布),结果清楚地表明我的AMD处理器上的空检查更好. …

java

8
推荐指数
1
解决办法
1185
查看次数

Graphql 模式浏览​​器

我已经开始使用 postman 进行 graphql 查询(到目前为止使用 Altair)。虽然我确实在查询中获得了自动建议,但我没有看到任何探索加载模式的选项。所有其他 graphql api 工具都有该选项。有人可以帮忙吗?

切换是因为邮递员有更好的选择来管理环境和标头。

postman

6
推荐指数
0
解决办法
4206
查看次数

标签 统计

java ×1

postman ×1