1 # Demos and Documentation for Leyden-premain Protype 2 3 4 ## Demos 5 6 - [simple](simple) script to demonstrate the "5 step" process of training/production run with leyden-premain prototype 7 8 - [jmh](jmh) run JMH + specjbb2005-jmh-1.25.jar 9 10 - [javac](javac) using javac as a regression test, to compile up to 10000 Java source files 11 12 - [javac_helloworld](javac_helloworld) measures the total elapsed time of `javac HelloWorld.java` using 13 the premain branch vs the JDK mainline. 14 It's a good demonstration of how we can improve start-up time of a complex application. 15 16 - [javac_new_workflow](javac_new_workflow) Example of the new "one step training" workflow 17 (still under development) where you can generate all the Leyden artifacts with a single 18 JVM invocation. 19 20 ## Benchmarking 21 22 We use a small set of benchmarks to demonstrate the performance of the optimizations in the Leyden repo. 23 24 | Benchmark | Source | 25 | ------------- | ------------- | 26 |[helidon-quickstart-se](helidon-quickstart-se)|https://helidon.io/docs/v4/se/guides/quickstart| 27 |[micronaut-first-app](micronaut-first-app)|https://guides.micronaut.io/latest/creating-your-first-micronaut-app-maven-java.html| 28 |[quarkus-getting-started](quarkus-getting-started)|https://quarkus.io/guides/getting-started| 29 |[spring-boot-getting-started](spring-boot-getting-started)|https://spring.io/guides/gs/spring-boot| 30 |[spring-petclinic](spring-petclinic)|https://github.com/spring-projects/spring-petclinic| 31 32 See [README.md in the repo root](../../../../README.md) for some sample benchmark results. 33 34 ## Docs 35 36 - [InvokeDynamic.md](InvokeDynamic.md) CDS optimizations for invokedynamic 37 38 ## Regression Testing 39 40 Leyden-specific tests have been added to the following directories in the repo: 41 42 - [test/hotspot/jtreg/runtime/cds/appcds/applications](../runtime/cds/appcds/applications) 43 - [test/hotspot/jtreg/runtime/cds/appcds/indy](../runtime/cds/appcds/indy) 44 - [test/hotspot/jtreg/runtime/cds/appcds/leyden](../runtime/cds/appcds/leyden) 45 - [test/hotspot/jtreg/runtime/cds/appcds/preloadedClasses](../runtime/cds/appcds/preloadedClasses) 46 47 These test cases can be executed using jtreg. Some of the tests (in the applications directories) 48 require binaries to be built separately. Please refer to the script [lib/build-for-jtreg.sh](lib/build-for-jtreg.sh)