Skip to content

Commit

Permalink
Import AppCDS demo
Browse files Browse the repository at this point in the history
  • Loading branch information
Nicolai Parlog committed Oct 12, 2018
1 parent 28a0d27 commit ece5eac
Show file tree
Hide file tree
Showing 5 changed files with 99 additions and 0 deletions.
4 changes: 4 additions & 0 deletions .gitignore
Expand Up @@ -5,3 +5,7 @@
# Maven

/target

# Demos

/app-cds
1 change: 1 addition & 0 deletions README.md
Expand Up @@ -49,6 +49,7 @@ Check out the [jigsaw](http://blog.codefx.org/tag/project-jigsaw/) and [jpms](ht

## JVM & Tooling

*[application class-dara sharing](app-cds.sh) ([blog post](http://blog.codefx.org/java/application-class-data-sharing/), [JEP 310](http://openjdk.java.net/jeps/310))
* ⑨ multi-release JARs: [classes](src/main/java/org/codefx/demo/java9/internal/multi_release) and [the script](multi-release.sh) ([JEP 238](http://openjdk.java.net/jeps/238))
* ⑨ platform logging: [classes](src/platform_logging/java/org/codefx/demo/java9/api/platform_logging) and [the script](platform-logging.sh) ([JEP 264](http://openjdk.java.net/jeps/264))

Expand Down
47 changes: 47 additions & 0 deletions app-cds.sh
@@ -0,0 +1,47 @@
#!/bin/bash
set -e
source executables.sh

rm -rf app-cds
mkdir app-cds

if ! [ -e target/java-x.jar ]
then
printf "Building Maven project, so JAR is available...\n"
mvn clean install
fi

printf "\n--- RUN WITHOUT CDS ---\n\n"
time $java -jar target/java-x.jar

printf "\n--- RUN WITH CDS ---\n"
printf "\n > create archive for default JDK classes\n"
sudo $java -Xshare:dump
printf "\n > use default archive\n"
time $java -Xshare:on -jar target/java-x.jar
printf "\n > non-archived classes\n"
$java -Xshare:on \
-Xlog:class+load \
-jar target/java-x.jar \
| grep -v "shared objects file"

printf "\n--- RUN WITH APPLICATION CDS ---\n"
printf "\n > record used classes\n"
$java \
-XX:DumpLoadedClassList=app-cds/classes.lst \
-jar target/java-x.jar

printf "\n > create archive for recorded classes\n"
$java \
-Xshare:dump \
-XX:+UnlockDiagnosticVMOptions \
-XX:SharedClassListFile=app-cds/classes.lst \
-XX:SharedArchiveFile=app-cds/app.jsa \
--class-path target/java-x.jar

printf "\n > use created archive\n"
time $java \
-Xshare:on \
-XX:+UnlockDiagnosticVMOptions \
-XX:SharedArchiveFile=app-cds/app.jsa \
-jar target/java-x.jar \
38 changes: 38 additions & 0 deletions pom.xml
Expand Up @@ -54,6 +54,44 @@
</compilerArgs>
</configuration>
</plugin>
<plugin>
<artifactId>maven-jar-plugin</artifactId>
<version>3.1.0</version>
<configuration>
<archive>
<manifest>
<addClasspath>true</addClasspath>
<mainClass>org.codefx.demo.java10.jvm.acds.HelloAppCDS</mainClass>
</manifest>
</archive>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>3.1.0</version>
<executions>
<execution>
<id>copy-installed</id>
<phase>install</phase>
<goals>
<goal>copy</goal>
</goals>
<configuration>
<artifactItems>
<artifactItem>
<groupId>${project.groupId}</groupId>
<artifactId>${project.artifactId}</artifactId>
<version>${project.version}</version>
<type>${project.packaging}</type>
</artifactItem>
</artifactItems>
<outputDirectory>target</outputDirectory>
<stripVersion>true</stripVersion>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>

Expand Down
@@ -0,0 +1,9 @@
package org.codefx.demo.java10.jvm.acds;

public class HelloAppCDS {

public static void main(String[] args) {
System.out.println("Hello, application class-data sharing!");
}

}

0 comments on commit ece5eac

Please sign in to comment.