Java 8 Lambda 性能测试

完整代码见 https://github.com/Jansora/demo/tree/master/backend/spring-boot/demo/src/main/java/com/jansora/demo

public class LambdaDemo extends AbstractDemoFactory {

    private static final DoSomething doSomething = () -> {

    };

    @Override
    protected DoSomethingWithThrowable doSomething(String[] args) throws Throwable {
        return () -> {
            // call 10 times
            for (int j = 0; j < 10; j++) {

                Cost.time("normal 1000 0000", () -> {
                    for (int i = 0; i < 1_000_000; i++) {

                    }
                });

                Cost.time("normal 1000 0000", () -> {
                    for (int i = 0; i < 1_000_000; i++) {
                        doSomething.doSomething();
                    }
                });
            }

        };
    }
}


日志

2022-07-21 15:33:01.979  [ --- COST --- ] com.jansora.demo.lambda.LambdaDemo cost start 
2022-07-21 15:33:01.979  [ --- COST --- ] LambdaDemo cost start 
2022-07-21 15:33:01.979  [ --- COST --- ] normal 1000 0000 cost start 
2022-07-21 15:33:01.980  [ --- COST --- ] normal 1000 0000 cost end. [ cost: 0.861009 ms. ] 
2022-07-21 15:33:01.980  [ --- COST --- ] normal 1000 0000 cost start 
2022-07-21 15:33:01.982  [ --- COST --- ] normal 1000 0000 cost end. [ cost: 1.877455 ms. ] 
2022-07-21 15:33:01.983  [ --- COST --- ] normal 1000 0000 cost start 
2022-07-21 15:33:01.983  [ --- COST --- ] normal 1000 0000 cost end. [ cost: 0.219573 ms. ] 
2022-07-21 15:33:01.983  [ --- COST --- ] normal 1000 0000 cost start 
2022-07-21 15:33:01.983  [ --- COST --- ] normal 1000 0000 cost end. [ cost: 0.219965 ms. ] 
2022-07-21 15:33:01.983  [ --- COST --- ] normal 1000 0000 cost start 
2022-07-21 15:33:01.984  [ --- COST --- ] normal 1000 0000 cost end. [ cost: 0.21822 ms. ] 
2022-07-21 15:33:01.984  [ --- COST --- ] normal 1000 0000 cost start 
2022-07-21 15:33:01.984  [ --- COST --- ] normal 1000 0000 cost end. [ cost: 0.218417 ms. ] 
2022-07-21 15:33:01.984  [ --- COST --- ] normal 1000 0000 cost start 
2022-07-21 15:33:01.984  [ --- COST --- ] normal 1000 0000 cost end. [ cost: 0.218201 ms. ] 
2022-07-21 15:33:01.984  [ --- COST --- ] normal 1000 0000 cost start 
2022-07-21 15:33:01.984  [ --- COST --- ] normal 1000 0000 cost end. [ cost: 0.218264 ms. ] 
2022-07-21 15:33:01.984  [ --- COST --- ] normal 1000 0000 cost start 
2022-07-21 15:33:01.985  [ --- COST --- ] normal 1000 0000 cost end. [ cost: 0.218212 ms. ] 
2022-07-21 15:33:01.985  [ --- COST --- ] normal 1000 0000 cost start 
2022-07-21 15:33:01.985  [ --- COST --- ] normal 1000 0000 cost end. [ cost: 0.227684 ms. ] 
2022-07-21 15:33:01.985  [ --- COST --- ] normal 1000 0000 cost start 
2022-07-21 15:33:01.985  [ --- COST --- ] normal 1000 0000 cost end. [ cost: 0.284417 ms. ] 
2022-07-21 15:33:01.985  [ --- COST --- ] normal 1000 0000 cost start 
2022-07-21 15:33:01.986  [ --- COST --- ] normal 1000 0000 cost end. [ cost: 0.230869 ms. ] 
2022-07-21 15:33:01.986  [ --- COST --- ] normal 1000 0000 cost start 
2022-07-21 15:33:01.986  [ --- COST --- ] normal 1000 0000 cost end. [ cost: 0.222295 ms. ] 
2022-07-21 15:33:01.986  [ --- COST --- ] normal 1000 0000 cost start 
2022-07-21 15:33:01.987  [ --- COST --- ] normal 1000 0000 cost end. [ cost: 0.220048 ms. ] 
2022-07-21 15:33:01.987  [ --- COST --- ] normal 1000 0000 cost start 
2022-07-21 15:33:01.987  [ --- COST --- ] normal 1000 0000 cost end. [ cost: 0.220665 ms. ] 
2022-07-21 15:33:01.987  [ --- COST --- ] normal 1000 0000 cost start 
2022-07-21 15:33:01.987  [ --- COST --- ] normal 1000 0000 cost end. [ cost: 0.219826 ms. ] 
2022-07-21 15:33:01.987  [ --- COST --- ] normal 1000 0000 cost start 
2022-07-21 15:33:01.988  [ --- COST --- ] normal 1000 0000 cost end. [ cost: 0.222573 ms. ] 
2022-07-21 15:33:01.988  [ --- COST --- ] normal 1000 0000 cost start 
2022-07-21 15:33:01.988  [ --- COST --- ] normal 1000 0000 cost end. [ cost: 0.220303 ms. ] 
2022-07-21 15:33:01.988  [ --- COST --- ] normal 1000 0000 cost start 
2022-07-21 15:33:01.988  [ --- COST --- ] normal 1000 0000 cost end. [ cost: 0.227021 ms. ] 
2022-07-21 15:33:01.988  [ --- COST --- ] normal 1000 0000 cost start 
2022-07-21 15:33:01.989  [ --- COST --- ] normal 1000 0000 cost end. [ cost: 0.218281 ms. ] 
2022-07-21 15:33:01.989  [ --- COST --- ] LambdaDemo cost end. [ cost: 9.380338 ms. ] 
2022-07-21 15:33:01.989  [ --- COST --- ] com.jansora.demo.lambda.LambdaDemo cost end. [ cost: 9.919391 ms. ] 

结论: 1000W 此调用性能损耗在 0.01 ms 一下. 性能基本无差.

但更需要警惕的是为了适配 lambda 所做的其他操作的耗时,

评论栏