Browse Source

add graalvm (#6695)

* Update redkale-graalvm.dockerfile

* Update pom.xml

* Update redkale-graalvm.dockerfile

* Update redkale-graalvm.dockerfile

* Update redkale-graalvm.dockerfile

* Create redkale-native.dockerfile

* Update redkale-native.dockerfile

* Update config.toml

* Update benchmark_config.json

* Update redkale-native.dockerfile

* Update redkale-native.dockerfile

* Update redkale-native.dockerfile

* Update config.toml

* Update benchmark_config.json

* Update redkale-native.dockerfile

* Update config.toml

* Update redkale-native.dockerfile

* Update benchmark_config.json

* Update config.toml

* Update redkale-native.dockerfile

* Update config.toml

* Update benchmark_config.json

* Update redkale-native.dockerfile

* Update redkale-native.dockerfile

* Update redkale-native.dockerfile

* Update redkale-native.dockerfile

* Update redkale-native.dockerfile

* Update redkale-native.dockerfile

* Update CachedWorld.java

* Update Fortune.java

* Update World.java

* Update Message.java

* update graalvm version
Redkale 4 years ago
parent
commit
be0bec23db

+ 22 - 2
frameworks/Java/redkale/benchmark_config.json

@@ -21,7 +21,7 @@
                 "notes": "",
                 "notes": "",
                 "versus": "Redkale"
                 "versus": "Redkale"
             },
             },
-            "j17": {
+            "graalvm": {
                 "plaintext_url": "/plaintext",
                 "plaintext_url": "/plaintext",
                 "json_url": "/json",
                 "json_url": "/json",
                 "cached_query_url": "/cached-worlds?q=",
                 "cached_query_url": "/cached-worlds?q=",
@@ -37,7 +37,27 @@
                 "webserver": "Redkale",
                 "webserver": "Redkale",
                 "os": "Linux",
                 "os": "Linux",
                 "database_os": "Linux",
                 "database_os": "Linux",
-                "display_name": "redkale-j17",
+                "display_name": "redkale-graalvm",
+                "notes": "",
+                "versus": "Redkale"
+            },
+            "native": {
+                "plaintext_url": "/plaintext",
+                "json_url": "/json",
+                "cached_query_url": "/cached-worlds?q=",
+                "port": 8080,
+                "approach": "Realistic",
+                "classification": "Fullstack",
+                "database": "Postgres",
+                "framework": "Redkale",
+                "language": "Java",
+                "flavor": "None",
+                "orm": "Raw",
+                "platform": "Redkale",
+                "webserver": "Redkale",
+                "os": "Linux",
+                "database_os": "Linux",
+                "display_name": "redkale-native",
                 "notes": "",
                 "notes": "",
                 "versus": "Redkale"
                 "versus": "Redkale"
             },
             },

+ 15 - 1
frameworks/Java/redkale/config.toml

@@ -6,6 +6,20 @@ urls.plaintext = "/plaintext"
 urls.json = "/json"
 urls.json = "/json"
 approach = "Realistic"
 approach = "Realistic"
 classification = "Fullstack"
 classification = "Fullstack"
+database = "None"
+database_os = "Linux"
+os = "Linux"
+orm = "Raw"
+platform = "Redkale"
+webserver = "Redkale"
+versus = "Redkale"
+
+[graalvm]
+urls.plaintext = "/plaintext"
+urls.json = "/json"
+urls.cached_query = "/cached-worlds?q="
+approach = "Realistic"
+classification = "Fullstack"
 database = "Postgres"
 database = "Postgres"
 database_os = "Linux"
 database_os = "Linux"
 os = "Linux"
 os = "Linux"
@@ -14,7 +28,7 @@ platform = "Redkale"
 webserver = "Redkale"
 webserver = "Redkale"
 versus = "Redkale"
 versus = "Redkale"
 
 
-[j17]
+[native]
 urls.plaintext = "/plaintext"
 urls.plaintext = "/plaintext"
 urls.json = "/json"
 urls.json = "/json"
 urls.cached_query = "/cached-worlds?q="
 urls.cached_query = "/cached-worlds?q="

+ 22 - 0
frameworks/Java/redkale/pom.xml

@@ -73,6 +73,28 @@
                 <artifactId>maven-compiler-plugin</artifactId>
                 <artifactId>maven-compiler-plugin</artifactId>
                 <version>3.8.0</version>                         
                 <version>3.8.0</version>                         
             </plugin>
             </plugin>
+                 
+            <plugin>
+                <groupId>org.redkale.maven.plugins</groupId>
+                <artifactId>redkale-maven-plugin</artifactId>
+                <version>1.0.0-SNAPSHOT</version>                                                
+                <configuration>		
+                    <nativeimageArgs>
+                        <arg>--allow-incomplete-classpath</arg>
+                        <arg>--no-fallback</arg>
+                    </nativeimageArgs>
+                </configuration>                                    
+                <executions>
+                    <execution>
+                        <id>redkale-compile</id> 
+                        <phase>process-classes</phase>
+                        <goals>
+                            <goal>compile</goal>
+                        </goals>                   
+                    </execution>
+                </executions>    
+            </plugin>
+                 
             <plugin>
             <plugin>
                 <groupId>com.fizzed</groupId>
                 <groupId>com.fizzed</groupId>
                 <artifactId>rocker-maven-plugin</artifactId>
                 <artifactId>rocker-maven-plugin</artifactId>

+ 2 - 2
frameworks/Java/redkale/redkale-j17.dockerfile → frameworks/Java/redkale/redkale-graalvm.dockerfile

@@ -1,11 +1,11 @@
-FROM maven:3.8.1-openjdk-17-slim as maven
+FROM maven:3.6.3-openjdk-16-slim as maven
 WORKDIR /redkale
 WORKDIR /redkale
 COPY src src
 COPY src src
 COPY conf conf
 COPY conf conf
 COPY pom.xml pom.xml
 COPY pom.xml pom.xml
 RUN mvn package -q
 RUN mvn package -q
 
 
-FROM openjdk:17-jdk-slim
+FROM ghcr.io/graalvm/graalvm-ce:21.1.0
 WORKDIR /redkale
 WORKDIR /redkale
 COPY conf conf
 COPY conf conf
 COPY --from=maven /redkale/target/redkale-benchmark-1.0.0.jar redkale-benchmark.jar
 COPY --from=maven /redkale/target/redkale-benchmark-1.0.0.jar redkale-benchmark.jar

+ 21 - 0
frameworks/Java/redkale/redkale-native.dockerfile

@@ -0,0 +1,21 @@
+FROM maven:3.6.3-openjdk-16-slim as maven
+WORKDIR /redkale
+COPY src src
+COPY conf conf
+COPY pom.xml pom.xml
+RUN mvn package -q
+
+
+FROM ghcr.io/graalvm/graalvm-ce:21.1.0
+RUN gu install native-image
+WORKDIR /redkale
+COPY conf conf
+COPY --from=maven /redkale/target/redkale-benchmark-1.0.0.jar redkale-benchmark.jar
+
+RUN native-image -H:+ReportExceptionStackTraces --report-unsupported-elements-at-runtime -jar redkale-benchmark.jar
+
+RUN ls -lh
+
+EXPOSE 8080
+
+CMD ./redkale-benchmark 

+ 1 - 0
frameworks/Java/redkale/src/main/java/org/redkalex/benchmark/CachedWorld.java

@@ -14,6 +14,7 @@ import org.redkale.source.*;
  * @author zhangjx
  * @author zhangjx
  */
  */
 //@Cacheable(direct = true)
 //@Cacheable(direct = true)
+@Entity
 @Table(name = "World")
 @Table(name = "World")
 public final class CachedWorld implements Comparable<CachedWorld> {
 public final class CachedWorld implements Comparable<CachedWorld> {
 
 

+ 2 - 1
frameworks/Java/redkale/src/main/java/org/redkalex/benchmark/Fortune.java

@@ -6,13 +6,14 @@
 package org.redkalex.benchmark;
 package org.redkalex.benchmark;
 
 
 import java.util.*;
 import java.util.*;
-import javax.persistence.Id;
+import javax.persistence.*;
 import org.redkale.convert.json.JsonConvert;
 import org.redkale.convert.json.JsonConvert;
 
 
 /**
 /**
  *
  *
  * @author zhangjx
  * @author zhangjx
  */
  */
+@Entity
 public final class Fortune implements Comparable<Fortune> {
 public final class Fortune implements Comparable<Fortune> {
 
 
     @Id
     @Id

+ 2 - 0
frameworks/Java/redkale/src/main/java/org/redkalex/benchmark/Message.java

@@ -7,11 +7,13 @@ package org.redkalex.benchmark;
 
 
 import org.redkale.convert.ConvertSmallString;
 import org.redkale.convert.ConvertSmallString;
 import org.redkale.convert.json.JsonConvert;
 import org.redkale.convert.json.JsonConvert;
+import org.redkale.util.Bean;
 
 
 /**
 /**
  *
  *
  * @author zhangjx
  * @author zhangjx
  */
  */
+@Bean
 public final class Message {
 public final class Message {
 
 
     private static final Message instance = new Message();
     private static final Message instance = new Message();

+ 2 - 1
frameworks/Java/redkale/src/main/java/org/redkalex/benchmark/World.java

@@ -6,13 +6,14 @@
 package org.redkalex.benchmark;
 package org.redkalex.benchmark;
 
 
 import java.util.*;
 import java.util.*;
-import javax.persistence.Id;
+import javax.persistence.*;
 import org.redkale.convert.json.JsonConvert;
 import org.redkale.convert.json.JsonConvert;
 
 
 /**
 /**
  *
  *
  * @author zhangjx
  * @author zhangjx
  */
  */
+@Entity
 public final class World implements Comparable<World> {
 public final class World implements Comparable<World> {
 
 
     @Id
     @Id