Взгляните на этот простой тест:
@State(Scope.Benchmark)
@Fork(value = 1)
@Warmup(iterations = 3, time = 300, timeUnit = TimeUnit.MILLISECONDS)
@Measurement(iterations = 10, time = 1, timeUnit = TimeUnit.SECONDS)
@BenchmarkMode(Mode.Throughput)
public class SimpleBenchmark {
int[] array;
@Setup
public void setup() {
this.array = new int[100_000];
}
@Benchmark
public void dec_all() {
for(int i = 0; i < this.array.length; i++){
this.array[i]--;
}
}
@Benchmark
public void dec_half() {
for(int i = 0; i < this.array.length; i+=2){
this.array[i]--;
}
}
}
Вариант № 1 - Терминал . Если вы используете maven, вам понадобится что-то подобное в вашем pom.xml
[...]
maven-compiler-plugin
3.5.1
1.8
org.apache.maven.plugins
maven-shade-plugin
2.2
package
shade
${uberjar.name}
org.openjdk.jmh.Main
*:*
META-INF/*.SF
META-INF/*.DSA
META-INF/*.RSA
Затем просто запустите его в терминале / консоли:
mvn clean package
java -jar target/benchmarks.jar
[ 1118] Вариант № 2 - IDE . Запустите его из main в вашей IDE:
import org.openjdk.jmh.Main;
[...]
public static void main(String... args) throws Exception {
Main.main(args); // WARN: for better results run it from terminal!
}
В результате вы увидите:
Benchmark Mode Cnt Score Error Units
SimpleBenchmark.dec_all thrpt 10 37278,685 ± 757,013 ops/s
SimpleBenchmark.dec_half thrpt 10 28749,803 ± 811,464 ops/s
Из-за @BenchmarkMode(Mode.Throughput)
вы получите [ops / s] ( операций / сек ). Попробуйте другие режимы, например AverageTime
Вы также можете попробовать этот шаблон: https://github.com/jawb-software/template-jmh-benchmark/tree/simple [ 1116]
Существует также jReality, это - лицензируемый BSD, использует JOGL и выглядит довольно хорошим.
Поддерживает множество выходных форм: рендеринг только для программного обеспечения, рендеринг OpenGL, иммерсивная виртуальная реальность (как в ПЕЩЕРЕ) рендеринг; а также форматы файлов как Pixar’s RenderMan® и SVG
Моя интерпретация сообщения Java3D - то, что они добавляют новый график сцены, не заменяя их текущий, чтобы эффективнее сцепиться с JavaFX, который предназначен для веб-приложений. Я использовал Java3D в прошлом и любил его, таким образом, я рекомендовал бы пытаться связаться с devs и спросить, что их планы относительно любого приложения, которое Вы создаете.