如何在JVM优化流畅API

问题描述 投票:1回答:1

在JVM可以优化这段代码

请问这个代码获得Java编译器或JVM优化,我特别要求,如果这这样写的代码的Java做优化

Stream.of(1, 2, 3)
      .map(i -> i + 1)
      .map(i -> i + 1)
      .map(i -> i + 1);

喜欢的东西

Stream.of(1, 2, 3)
      .map(i -> i + 3)

或者是更积极,更与循环可能可以提高性能基本替换此。

Clojure中有传感器的概念,它是一种优化,你可以做撰写减少,能功能集成到一个单一的功能,并删除懒传播的开销。 JVM的可转导的一些功能在一个流畅的API?

例如,如果我们有一个装饰接口,Java流

decor-map(decor-map(base-map (i -> i + 1), i -> i +1), i -> i + 1)

然后我假设编译可以以某种方式设法转导装饰地图。但是,这怎么可能在一个流畅的API?

java optimization jvm compiler-optimization
1个回答
1
投票

javac的真的没有做太多优化,据我所知,这真的只做constant folding

换句话说:所有的源码编译成机器代码时,许多其他语言,如C ++直接套用复杂的优化选项... javac还没有做任何的那个。

为什么:因为发生在运行时(它是有道理的),由JIT。

结论:你不担心性能的Java代码在“事物的源代码一面”。您尝试写易简单的代码,短方法,使JIT可以做到这一点魔法和内嵌了这一切,并把它变成被优化以支持您的实际使用模式的机器代码。

© www.soinside.com 2019 - 2024. All rights reserved.