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)