Size: a a a

2018 June 27

ПФ

Паша Финкельштейн in graalvm_ru
у меня джарник не собран JMH-ный )))
источник

ПФ

Паша Финкельштейн in graalvm_ru
скинешь?
источник

OS

Oleg Shelajev in graalvm_ru
λЪЫ
а вот такое читали? http://chrisseaton.com/plas15/safec.pdf я не успел, там много буков, но, судя по заголовку, имеются некоторые радужные перспективы
Да, потенциально будет работать, может быть в enterprise edition только
источник

OS

Oleg Shelajev in graalvm_ru
5 минут до компа дойду
источник

ПФ

Паша Финкельштейн in graalvm_ru
спс )
источник

p

pragus in graalvm_ru
Паша Финкельштейн
правда на уровне ядра могут твориться чудеса, конечно
о том и речь: реализации tcp разные и ядра тоже разные.
источник

p

pragus in graalvm_ru
Паша Финкельштейн
но 10 наосекунд — это как-то слишком
выглядит как что-то где-то закешилось
источник

ПФ

Паша Финкельштейн in graalvm_ru
pragus
выглядит как что-то где-то закешилось
в процессоре
источник

p

pragus in graalvm_ru
Паша Финкельштейн
в процессоре
где-то в L2 кеше, судя по https://www.7-cpu.com/cpu/Skylake.html
источник

ПФ

Паша Финкельштейн in graalvm_ru
Так, ну это я устранил
источник

ПФ

Паша Финкельштейн in graalvm_ru
но чота всё равно результаты невероятные
источник

OS

Oleg Shelajev in graalvm_ru
источник

ПФ

Паша Финкельштейн in graalvm_ru
тебе куда кинуть улучшенный вариант?
источник

OS

Oleg Shelajev in graalvm_ru
ну прям сюда можно, здесь же всем интересно )
источник

ПФ

Паша Финкельштейн in graalvm_ru
package org.graalvm.demos;

import org.openjdk.jmh.annotations.*;
import org.openjdk.jmh.infra.Blackhole;

import java.util.Arrays;
import java.util.Random;
import java.util.concurrent.TimeUnit;

@Warmup(iterations = 1)
@Measurement(iterations = 3)
@BenchmarkMode(Mode.AverageTime)
@OutputTimeUnit(TimeUnit.NANOSECONDS)
@Fork(1)
@State(Scope.Benchmark)
public class JavaSimpleStreamBenchmark {

   int[] values = new int[10];
   private final Random random = new Random();

   @Setup(Level.Invocation)
   public void setup() {
       for (int i = 0; i < values.length; i++) {
           values[i] = random.nextInt();
       }
   }

   @Benchmark
   public void testMethod(Blackhole b) {
       b.consume(Arrays.stream(values)
               .map(x -> x + 1)
               .map(x -> x * 2)
               .map(x -> x + 2)
               .reduce(0, Integer::sum));
   }
}
источник

ПФ

Паша Финкельштейн in graalvm_ru
теперь хрен закешируешь (я надеюсь)
источник

ПФ

Паша Финкельштейн in graalvm_ru
перед каждым вызовом бенчмарка у нас массив заполняется случайными интами
источник

ПФ

Паша Финкельштейн in graalvm_ru
сейчас мы ещё вариативность по размеру массива добавим…
источник

ВВ

Виктор Вербицкий in graalvm_ru
Oleg Shelajev
ну прям сюда можно, здесь же всем интересно )
+1 :-)
источник

OS

Oleg Shelajev in graalvm_ru
[ERROR] /Users/shelajev/repo/graal-oss/graalvm-demos/java-simple-stream-benchmark/src/main/java/org/graalvm/demos/JavaSimpleStreamBenchmark.java:[59,11] Field "values" is declared within the class not having @State annotation. This can result in unspecified behavior, and prohibited.
источник