Skip to content
This repository was archived by the owner on Mar 24, 2026. It is now read-only.

Commit 995cbe8

Browse files
Attempt to improve performance (#5622)
* Attempt to improve performance * Removes unneeded flag * I blame IntelliJ for this one...
1 parent 2e383e7 commit 995cbe8

3 files changed

Lines changed: 9 additions & 6 deletions

File tree

frameworks/Java/httpserver/httpserver-postgres.dockerfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,4 +7,4 @@ RUN mvn compile assembly:single -q
77
FROM openjdk:11.0.3-jdk-slim
88
WORKDIR /httpserver
99
COPY --from=maven /httpserver/target/httpserver-1.0-jar-with-dependencies.jar app.jar
10-
CMD ["java", "-server", "-Xss256k", "-XX:+UseNUMA", "-XX:+UseParallelGC", "-XX:+AggressiveOpts", "-jar", "app.jar", "postgres"]
10+
CMD ["java", "-server", "-XX:+UseNUMA", "-XX:+UseParallelGC", "-XX:+AggressiveOpts", "-jar", "app.jar", "postgres"]

frameworks/Java/httpserver/httpserver.dockerfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,4 +7,4 @@ RUN mvn compile assembly:single -q
77
FROM openjdk:11.0.3-jdk-slim
88
WORKDIR /httpserver
99
COPY --from=maven /httpserver/target/httpserver-1.0-jar-with-dependencies.jar app.jar
10-
CMD ["java", "-server", "-Xss256k", "-XX:+UseNUMA", "-XX:+UseParallelGC", "-XX:+AggressiveOpts", "-jar", "app.jar"]
10+
CMD ["java", "-server", "-XX:+UseNUMA", "-XX:+UseParallelGC", "-XX:+AggressiveOpts", "-jar", "app.jar"]

frameworks/Java/httpserver/src/main/java/benchmarks/Server.java

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
import java.sql.SQLException;
1010
import java.text.ParseException;
1111
import java.util.*;
12+
import java.util.concurrent.Executors;
1213
import java.util.concurrent.SynchronousQueue;
1314
import java.util.concurrent.ThreadPoolExecutor;
1415
import java.util.concurrent.TimeUnit;
@@ -51,7 +52,7 @@ private static DataSource createPostgresDataSource() throws ClassNotFoundExcepti
5152
config.setJdbcUrl("jdbc:postgresql://tfb-database:5432/hello_world");
5253
config.setUsername("benchmarkdbuser");
5354
config.setPassword("benchmarkdbpass");
54-
config.setMaximumPoolSize(64);
55+
config.setMaximumPoolSize(512);
5556
return new HikariDataSource(config);
5657
}
5758

@@ -71,6 +72,7 @@ private static HttpHandler createPlaintextHandler() {
7172
t.getResponseHeaders().add("Server", SERVER_NAME);
7273
t.sendResponseHeaders(200, HELLO_LENGTH);
7374
t.getResponseBody().write(HELLO_BYTES);
75+
t.getResponseBody().flush();
7476
t.getResponseBody().close();
7577
};
7678
}
@@ -90,6 +92,7 @@ private static HttpHandler createJSONHandler() {
9092
t.getResponseHeaders().add("Server", SERVER_NAME);
9193
t.sendResponseHeaders(200, bytes.length);
9294
t.getResponseBody().write(bytes);
95+
t.getResponseBody().flush();
9396
t.getResponseBody().close();
9497
};
9598
}
@@ -113,6 +116,7 @@ private static HttpHandler createFortunesHandler(DataSource ds) throws IOExcepti
113116
t.getResponseHeaders().add("Server", SERVER_NAME);
114117
t.sendResponseHeaders(200, bytes.length);
115118
t.getResponseBody().write(bytes);
119+
t.getResponseBody().flush();
116120
t.getResponseBody().close();
117121
} catch (SQLException | ParseException e) {
118122
throw new IOException(e);
@@ -127,9 +131,8 @@ public static void main(String[] args) throws Exception {
127131
if (settings.contains("debug"))
128132
System.setProperty("org.slf4j.simpleLogger.defaultLogLevel", "DEBUG");
129133
// create server
130-
HttpServer server = HttpServer.create(new InetSocketAddress(port), 0);
131-
server.setExecutor(new ThreadPoolExecutor(
132-
8, Integer.MAX_VALUE, 300, TimeUnit.SECONDS, new SynchronousQueue<>()));
134+
HttpServer server = HttpServer.create(new InetSocketAddress(port), 1024 * 8);
135+
server.setExecutor(Executors.newFixedThreadPool(Runtime.getRuntime().availableProcessors()));
133136
// add context handlers
134137
server.createContext("/plaintext", createPlaintextHandler());
135138
server.createContext("/json", createJSONHandler());

0 commit comments

Comments
 (0)