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)