Приведенный ниже код отлично запускает escape-анализ (проверено добавлением -verbose:gc< /code> и запуск кода с -XX:-DoEscapeAnaлиз. Запускается без активности EA для печати GC, а с EA - нет)
Код: Выделить всё
public static int mapSum_boxed(){
record TestObject(int i){};
return IntStream.range(0, 1_000_000_000)
.boxed()
.map(x-> new TestObject(1))
.mapToInt(x-> x.i())
.sum();
}
Код: Выделить всё
public static void main(String[] args) {
System.out.println(mapSum_boxed());
}
Код: Выделить всё
> Task :org.example.Main.main()
[0.002s][info][gc] Using G1
1000000000
р>
Код: Выделить всё
public static int mapSum_boxed(){
record TestObject(int i){};
return IntStream.range(0, 1_000_000_000)
.boxed()
.map(x-> 1) // new TestObject(1))
.mapToInt(x-> x.i())
.sum();
}
Код: Выделить всё
> Task :org.example.Main.main()
[0.002s][info][gc] Using G1
[0.053s][info][gc] GC(0) Pause Young (Normal) (G1 Evacuation Pause) 23M->2M(246M) 1.398ms
[0.117s][info][gc] GC(1) Pause Young (Normal) (G1 Evacuation Pause) 120M->2M(246M) 0.965ms
.... // many many more lines of GC
[6.530s][info][gc] GC(123) Pause Young (Normal) (G1 Evacuation Pause) 258M->2M(428M) 0.724ms
1000000000
Подробнее здесь: https://stackoverflow.com/questions/793 ... ar-example
Мобильная версия