Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion frameworks/Clojure/aleph/aleph.dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -11,4 +11,4 @@ COPY --from=lein /aleph/target/hello-aleph-standalone.jar app.jar

EXPOSE 8080

CMD ["java", "-server", "--enable-native-access=ALL-UNNAMED", "-XX:+UseParallelGC", "-jar", "app.jar"]
CMD ["java", "-server", "--enable-native-access=ALL-UNNAMED", "-XX:+UseParallelGC", "-XX:MaxRAMPercentage=70", "-Dclojure.compiler.direct-linking=true","-jar", "app.jar"]
12 changes: 10 additions & 2 deletions frameworks/Clojure/aleph/src/hello/handler.clj
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,15 @@
(def jdbc-opts {:builder-fn rs/as-unqualified-maps})

(def db-spec
{:jdbcUrl "jdbc:postgresql://tfb-database/hello_world?user=benchmarkdbuser&password=benchmarkdbpass"})
{:auto-commit false
:connection-timeout 1000
:validation-timeout 1000
:idle-timeout 15000
:max-lifetime 60000
:minimum-idle 0
:maximum-pool-size 128
:register-mbeans false
:jdbcUrl "jdbc:postgresql://tfb-database/hello_world?user=benchmarkdbuser&password=benchmarkdbpass"})

(def datasource
(connection/->pool HikariDataSource db-spec))
Expand Down Expand Up @@ -62,7 +70,7 @@
jdbc-opts))

(defn- update-world
[{:keys [randomnumber id]}]
[{:keys [randomnumber id]}]
(jdbc/execute-one! datasource
["update \"World\" set randomNumber = ? where id = ? returning *;" randomnumber id]
jdbc-opts))
Expand Down
2 changes: 1 addition & 1 deletion frameworks/Clojure/compojure/compojure-raw.dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -13,4 +13,4 @@ COPY resin.xml conf/resin.xml

EXPOSE 8080

CMD ["java", "-jar", "lib/resin.jar", "console"]
CMD ["java", "-XX:MaxRAMPercentage=70", "-Dclojure.compiler.direct-linking=true", "-jar", "lib/resin.jar", "console"]
2 changes: 1 addition & 1 deletion frameworks/Clojure/compojure/compojure.dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -13,4 +13,4 @@ COPY resin.xml conf/resin.xml

EXPOSE 8080

CMD ["java", "-jar", "lib/resin.jar", "console"]
CMD ["java", "-XX:MaxRAMPercentage=70", "-Dclojure.compiler.direct-linking=true","-jar", "lib/resin.jar", "console"]
2 changes: 1 addition & 1 deletion frameworks/Clojure/http-kit/http-kit-raw.dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -7,4 +7,4 @@ RUN lein uberjar

EXPOSE 8080

CMD ["java", "-server", "-jar", "target/http-kit-standalone.jar"]
CMD ["java", "-server", "-Dclojure.compiler.direct-linking=true", "-jar", "target/http-kit-standalone.jar"]
2 changes: 1 addition & 1 deletion frameworks/Clojure/http-kit/http-kit.dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -7,4 +7,4 @@ RUN lein uberjar

EXPOSE 8080

CMD ["java", "-server", "-jar", "target/http-kit-standalone.jar"]
CMD ["java", "-server", "-Dclojure.compiler.direct-linking=true", "-jar", "target/http-kit-standalone.jar"]
2 changes: 1 addition & 1 deletion frameworks/Clojure/kit/deps.edn
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@

;; HTML templating
selmer/selmer {:mvn/version "1.12.62"}
org.clojars.jj/majavat {:mvn/version "1.12.3"}
org.clojars.jj/majavat {:mvn/version "1.13.0"}
hiccup/hiccup {:mvn/version "2.0.0"}

;; Database
Expand Down
2 changes: 1 addition & 1 deletion frameworks/Clojure/kit/kit-hiccup.dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ COPY --from=build /target/te-bench-standalone.jar /te-bench/te-bench-standalone.
EXPOSE 8080

ENV PORT=8080
ENV JAVA_OPTS="-XX:+UseContainerSupport -Dfile.encoding=UTF-8"
ENV JAVA_OPTS="-XX:+UseContainerSupport -Dfile.encoding=UTF-8 -XX:MaxRAMPercentage=70 -Dclojure.compiler.direct-linking=true"
ENV JDBC_URL="jdbc:postgresql://tfb-database/hello_world?user=benchmarkdbuser&password=benchmarkdbpass"

ENTRYPOINT exec java $JAVA_OPTS -jar /te-bench/te-bench-standalone.jar
2 changes: 1 addition & 1 deletion frameworks/Clojure/kit/kit-majavat.dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ COPY --from=build /target/te-bench-standalone.jar /te-bench/te-bench-standalone.
EXPOSE 8080

ENV PORT=8080
ENV JAVA_OPTS="-XX:+UseContainerSupport -Dfile.encoding=UTF-8"
ENV JAVA_OPTS="-XX:+UseContainerSupport -Dfile.encoding=UTF-8 -XX:MaxRAMPercentage=70 -Dclojure.compiler.direct-linking=true"
ENV JDBC_URL="jdbc:postgresql://tfb-database/hello_world?user=benchmarkdbuser&password=benchmarkdbpass"

ENTRYPOINT exec java $JAVA_OPTS -jar /te-bench/te-bench-standalone.jar
2 changes: 1 addition & 1 deletion frameworks/Clojure/kit/kit.dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ COPY --from=build /target/te-bench-standalone.jar /te-bench/te-bench-standalone.
EXPOSE 8080

ENV PORT=8080
ENV JAVA_OPTS="-XX:+UseContainerSupport -Dfile.encoding=UTF-8"
ENV JAVA_OPTS="-XX:+UseContainerSupport -Dfile.encoding=UTF-8 -XX:MaxRAMPercentage=70 -Dclojure.compiler.direct-linking=true"
ENV JDBC_URL="jdbc:postgresql://tfb-database/hello_world?user=benchmarkdbuser&password=benchmarkdbpass"

ENTRYPOINT exec java $JAVA_OPTS -jar /te-bench/te-bench-standalone.jar
2 changes: 1 addition & 1 deletion frameworks/Clojure/luminus/luminus.dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -12,4 +12,4 @@ COPY --from=lein /luminus/target/hello.jar app.jar

EXPOSE 8080

CMD ["java", "-server", "-XX:+UseParallelGC", "-jar", "app.jar"]
CMD ["java", "-server", "-XX:+UseParallelGC", "-XX:MaxRAMPercentage=70", "-Dclojure.compiler.direct-linking=true", "-jar", "app.jar"]
2 changes: 1 addition & 1 deletion frameworks/Clojure/pedestal/pedestal.dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -8,4 +8,4 @@ RUN lein uberjar

EXPOSE 8080

CMD ["java", "-jar", "-Dio.pedestal.log.defaultMetricsRecorder=nil", "-Dio.pedestal.log.overrideLogger=nil", "target/pedestal-standalone.jar"]
CMD ["java", "-Dclojure.compiler.direct-linking=true", "-jar", "-Dio.pedestal.log.defaultMetricsRecorder=nil", "-Dio.pedestal.log.overrideLogger=nil", "target/pedestal-standalone.jar"]
2 changes: 2 additions & 0 deletions frameworks/Clojure/reitit/benchmark_config.json
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,8 @@
"versus": ""
},
"async": {
"json_url": "/json",
"plaintext_url": "/plaintext",
"db_url": "/db",
"port": 8080,
"approach": "Realistic",
Expand Down
2 changes: 1 addition & 1 deletion frameworks/Clojure/reitit/reitit-jdbc.dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -10,4 +10,4 @@ COPY --from=lein /reitit/target/hello-reitit-standalone.jar app.jar

EXPOSE 8080

CMD ["java", "-server", "-XX:+UseParallelGC", "-jar", "app.jar", "sync"]
CMD ["java", "-server", "-XX:+UseParallelGC", "-XX:MaxRAMPercentage=70", "-Dclojure.compiler.direct-linking=true", "-jar", "app.jar", "sync"]
2 changes: 1 addition & 1 deletion frameworks/Clojure/reitit/reitit.dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -10,4 +10,4 @@ COPY --from=lein /reitit/target/hello-reitit-standalone.jar app.jar

EXPOSE 8080

CMD ["java", "-server", "-XX:+UseParallelGC", "-jar", "app.jar"]
CMD ["java", "-server", "-XX:+UseParallelGC", "-XX:MaxRAMPercentage=70", "-Dclojure.compiler.direct-linking=true", "-jar", "app.jar"]
4 changes: 2 additions & 2 deletions frameworks/Clojure/ring-http-exchange/project.clj
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,9 @@

:dependencies [[org.clojure/clojure "1.12.3"]
[org.clojure/tools.logging "1.3.0"]
[org.clojars.jj/ring-http-exchange "1.2.4"]
[org.clojars.jj/ring-http-exchange "1.2.9"]
[seancorfield/next.jdbc "1.2.659"]
[org.clojars.jj/majavat "1.12.3"]
[org.clojars.jj/majavat "1.13.0"]
[hikari-cp "3.3.0"]
[org.clojars.jj/boa-sql "1.0.0"]
[org.postgresql/postgresql "42.7.8"]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,4 +11,4 @@ COPY --from=lein /ring-http-exchange/target/ring-http-server-1.0.0-standalone.ja

EXPOSE 8080

CMD ["java", "-server", "-XX:+UseParallelGC", "-jar", "app.jar"]
CMD ["java", "-server", "-XX:+UseZGC", "-XX:MaxRAMPercentage=70", "-Dclojure.compiler.direct-linking=true", "-jar", "app.jar"]
Original file line number Diff line number Diff line change
Expand Up @@ -11,4 +11,4 @@ COPY --from=lein /ring-http-exchange/target/ring-http-server-1.0.0-standalone.ja

EXPOSE 8080

CMD ["java", "-server", "-XX:+UseParallelGC", "-jar", "app.jar"]
CMD ["java", "-server", "-XX:+UseZGC", "-XX:MaxRAMPercentage=70", "-Dclojure.compiler.direct-linking=true", "-jar", "app.jar"]
Original file line number Diff line number Diff line change
Expand Up @@ -11,4 +11,4 @@ COPY --from=lein /ring-http-exchange/target/ring-http-server-1.0.0-standalone.ja

EXPOSE 8080

CMD ["java", "-server", "-XX:+UseParallelGC", "-jar", "app.jar"]
CMD ["java", "-Xtune:throughput", "-Xgcpolicy:optthruput", "-XX:MaxRAMPercentage=70", "-XX:+UseContainerSupport", "-Dclojure.compiler.direct-linking=true", "-jar", "app.jar"]
Original file line number Diff line number Diff line change
Expand Up @@ -11,4 +11,4 @@ COPY --from=lein /ring-http-exchange/target/ring-http-server-1.0.0-standalone.ja

EXPOSE 8080

CMD ["java", "-server", "-XX:+UseParallelGC", "-jar", "app.jar"]
CMD ["java", "-server", "-XX:+UseZGC", "-XX:MaxRAMPercentage=70", "-Dclojure.compiler.direct-linking=true", "-jar", "app.jar"]
Original file line number Diff line number Diff line change
Expand Up @@ -11,4 +11,4 @@ COPY --from=lein /ring-http-exchange/target/ring-http-server-1.0.0-standalone.ja

EXPOSE 8080

CMD ["java", "-server", "-XX:+UseParallelGC", "-jar", "app.jar"]
CMD ["java", "-server", "-XX:+UseZGC", "-XX:MaxRAMPercentage=70", "-Dclojure.compiler.direct-linking=true", "-jar", "app.jar"]
Original file line number Diff line number Diff line change
Expand Up @@ -12,36 +12,35 @@
(com.zaxxer.hikari HikariDataSource)
(java.util.concurrent Executors)))

(defrecord Response [body status headers])

(def query-fortunes (boa/execute (boa/->NextJdbcAdapter) "fortune.sql"))

(def db-spec {:auto-commit false
:connection-timeout 3000
:connection-timeout 1000
:validation-timeout 1000
:idle-timeout 300000
:max-lifetime 1800000
:minimum-idle 128
:maximum-pool-size 1024
:idle-timeout 15000
:max-lifetime 60000
:minimum-idle 0
:maximum-pool-size 128
:register-mbeans false
:jdbcUrl "jdbc:postgresql://tfb-database/hello_world?user=benchmarkdbuser&password=benchmarkdbpass&prepareThreshold=1"})
:jdbcUrl "jdbc:postgresql://tfb-database/hello_world?user=benchmarkdbuser&password=benchmarkdbpass&prepareThreshold=1"}
)

(def ^:private ^:const hello-world "Hello, World!")
(def ^:private ^:const additional-message {:id 0
:message "Additional fortune added at request time."})
(def ^:private ^:const fortune-headers {"Server" "ring-http-exchange"
"Content-Type" "text/html; charset=UTF-8"})
(def ^:private ^:const json-headers {"Server" "ring-http-exchange"
"Content-Type" "application/json"})
(def ^:private ^:const plain-text-headers {"Server" "ring-http-exchange"
"Content-Type" "text/plain"})

(def ^:private render-fortune (majavat/build-renderer "fortune.html"
{:renderer (->StringRenderer
{:sanitizer (->Html)})}))


(defn- plaintext-response []
{:status 200
:headers {"Server" "ring-http-exchange"
"Content-Type" "text/plain"}
:body "Hello, World!"})

(defn- get-body [datasource]
(let [context (as-> (query-fortunes datasource) fortunes
(conj fortunes additional-message)
Expand All @@ -50,23 +49,17 @@

(defn -main
[& _]
(System/setProperty "jdk.virtualThreadScheduler.parallelism"
(str (* 4 (.availableProcessors (Runtime/getRuntime)))))

(println "Starting server on port 8080")
(let [datasource (connection/->pool HikariDataSource db-spec)]
(server/run-http-server
(fn [req]
(case (req :uri)
"/plaintext" (plaintext-response)
"/json" {:status 200
:headers json-headers
:body (json/write-value-as-bytes {:message "Hello, World!"})}
"/fortunes" (let [body (get-body datasource)]
{:status 200
:headers fortune-headers
:body body})
(plaintext-response)))
{:port 8080
:host "0.0.0.0"
:executor (Executors/newVirtualThreadPerTaskExecutor)})))
"/plaintext" (Response. hello-world 200 plain-text-headers)
"/json" (Response. (json/write-value-as-string {:message hello-world}) 200 json-headers)
"/fortunes" (let [body (get-body datasource)] (Response. body 200 fortune-headers))
(Response. hello-world 200 {"Server" "ring-http-exchange"
"Content-Type" "text/plain"})))
{:port 8080
:host "0.0.0.0"
:record-support? true
:executor (Executors/newVirtualThreadPerTaskExecutor)})))
2 changes: 1 addition & 1 deletion frameworks/Java/httpserver/httpserver-graalvm.dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -10,4 +10,4 @@ COPY --from=maven /httpserver/target/httpserver-1.0-jar-with-dependencies.jar ap

EXPOSE 8080

CMD ["java", "-server", "-XX:+UseNUMA", "-XX:+UseParallelGC", "-jar", "app.jar"]
CMD ["java", "-server", "-XX:MaxRAMPercentage=70", "-XX:+UseNUMA", "-XX:+UseParallelGC", "-jar", "app.jar"]
2 changes: 1 addition & 1 deletion frameworks/Java/httpserver/httpserver-postgres.dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -10,4 +10,4 @@ COPY --from=maven /httpserver/target/httpserver-1.0-jar-with-dependencies.jar ap

EXPOSE 8080

CMD ["java", "-server", "-XX:+UseNUMA", "-XX:+UseParallelGC", "-jar", "app.jar", "postgres"]
CMD ["java", "-server", "-XX:MaxRAMPercentage=70", "-XX:+UseNUMA", "-XX:+UseParallelGC", "-jar", "app.jar", "postgres"]
Original file line number Diff line number Diff line change
Expand Up @@ -10,4 +10,4 @@ COPY --from=maven /httpserver-robaho/target/httpserver-1.0-jar-with-dependencies

EXPOSE 8080

CMD ["java", "-server", "-jar", "app.jar"]
CMD ["java", "-server", "-XX:MaxRAMPercentage=70", "-jar", "app.jar"]
Original file line number Diff line number Diff line change
Expand Up @@ -10,4 +10,4 @@ COPY --from=maven /httpserver-robaho/target/httpserver-1.0-jar-with-dependencies

EXPOSE 8080

CMD ["java", "-server", "-jar", "app.jar", "postgres"]
CMD ["java", "-server", "-XX:MaxRAMPercentage=70", "-jar", "app.jar", "postgres"]
2 changes: 1 addition & 1 deletion frameworks/Java/httpserver/httpserver-robaho.dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -10,4 +10,4 @@ COPY --from=maven /httpserver-robaho/target/httpserver-1.0-jar-with-dependencies

EXPOSE 8080

CMD ["java", "-server", "-jar", "app.jar"]
CMD ["java", "-server", "-XX:MaxRAMPercentage=70", "-jar", "app.jar"]
2 changes: 1 addition & 1 deletion frameworks/Java/httpserver/httpserver.dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -10,4 +10,4 @@ COPY --from=maven /httpserver/target/httpserver-1.0-jar-with-dependencies.jar ap

EXPOSE 8080

CMD ["java", "-server", "-XX:+UseNUMA", "-XX:+UseParallelGC", "-jar", "app.jar"]
CMD ["java", "-server", "-XX:MaxRAMPercentage=70", "-XX:+UseNUMA", "-XX:+UseParallelGC", "-jar", "app.jar"]
2 changes: 1 addition & 1 deletion frameworks/Java/httpserver/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,7 @@
<inherited>true</inherited>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.0</version>
<version>3.14.1</version>
<configuration>
<debug>false</debug>
<source>21</source>
Expand Down
10 changes: 5 additions & 5 deletions frameworks/Java/httpserver/src/main/java/benchmarks/Server.java
Original file line number Diff line number Diff line change
Expand Up @@ -51,19 +51,19 @@ private static List<Fortune> queryFortunes(DataSource ds) throws SQLException {
return fortunes;
}

private static DataSource createPostgresDataSource() throws ClassNotFoundException {
private static DataSource createPostgresDataSource() {
HikariConfig config = new HikariConfig();

config.setJdbcUrl("jdbc:postgresql://tfb-database:5432/hello_world");
config.setUsername("benchmarkdbuser");
config.setPassword("benchmarkdbpass");

config.setMaximumPoolSize(64);
config.setMinimumIdle(16);
config.setMinimumIdle(0);

config.setConnectionTimeout(10000);
config.setIdleTimeout(600000);
config.setMaxLifetime(1800000);
config.setConnectionTimeout(1000);
config.setIdleTimeout(15000);
config.setMaxLifetime(60000);

config.setAutoCommit(true);

Expand Down
Loading