From d1587be50a0bb6acb8887868a882a17e759bf6fa Mon Sep 17 00:00:00 2001 From: iapicca Date: Sat, 21 Mar 2026 17:00:43 +0200 Subject: [PATCH 01/11] add dart3-jit implementation --- frameworks/Dart/dart3/README.md | 13 +++ frameworks/Dart/dart3/benchmark_config.json | 12 +++ frameworks/Dart/dart3/dart3-aot.dockerfile | 2 +- frameworks/Dart/dart3/dart3-jit.dockerfile | 9 ++ frameworks/Dart/dart3/dart3.dockerfile | 2 +- .../Dart/dart3/dart_aot/bin/server.dart | 21 +---- .../Dart/dart3/dart_jit/bin/server.dart | 87 +++++++++++++++++++ .../Dart/dart3/dart_native/bin/server.dart | 21 +---- 8 files changed, 131 insertions(+), 36 deletions(-) create mode 100644 frameworks/Dart/dart3/dart3-jit.dockerfile create mode 100755 frameworks/Dart/dart3/dart_jit/bin/server.dart diff --git a/frameworks/Dart/dart3/README.md b/frameworks/Dart/dart3/README.md index 3be261226e2..f317366430b 100644 --- a/frameworks/Dart/dart3/README.md +++ b/frameworks/Dart/dart3/README.md @@ -8,6 +8,19 @@ The tests were run with: ## Benchmark Variants +### JIT + +### JIT + +Simplest possible implementation utilizing the standard Dart VM. +Results in the highest footprint both in terms of image size and memory consumption. +([source code](https://github.com/TechEmpower/FrameworkBenchmarks/tree/master/frameworks/Dart/dart3/dart_jit)) + +Test URLs: + +- JSON: `http://localhost:8080/json` +- PLAINTEXT: `http://localhost:8080/plaintext` + ### Native Minimal implementation with the smallest resource footprint. diff --git a/frameworks/Dart/dart3/benchmark_config.json b/frameworks/Dart/dart3/benchmark_config.json index 2b3d7df97e1..3eed4aaaadc 100644 --- a/frameworks/Dart/dart3/benchmark_config.json +++ b/frameworks/Dart/dart3/benchmark_config.json @@ -25,6 +25,18 @@ "language": "Dart", "os": "Linux", "database_os": "Linux" + }, + "jit": { + "display_name": "dart3_jit", + "json_url": "/json", + "plaintext_url": "/plaintext", + "port": 8080, + "approach": "Stripped", + "classification": "Platform", + "database": "None", + "language": "Dart", + "os": "Linux", + "database_os": "Linux" } }] } \ No newline at end of file diff --git a/frameworks/Dart/dart3/dart3-aot.dockerfile b/frameworks/Dart/dart3/dart3-aot.dockerfile index ef9d633eadf..ec13d910071 100644 --- a/frameworks/Dart/dart3/dart3-aot.dockerfile +++ b/frameworks/Dart/dart3/dart3-aot.dockerfile @@ -5,7 +5,7 @@ WORKDIR /app ARG MAX_ISOLATES=8 COPY pubspec.yaml . -COPY dart_aot/bin/ bin/ +COPY dart_aot/ . RUN dart compile aot-snapshot bin/server.dart \ --define=MAX_ISOLATES=${MAX_ISOLATES} \ diff --git a/frameworks/Dart/dart3/dart3-jit.dockerfile b/frameworks/Dart/dart3/dart3-jit.dockerfile new file mode 100644 index 00000000000..3370db613ae --- /dev/null +++ b/frameworks/Dart/dart3/dart3-jit.dockerfile @@ -0,0 +1,9 @@ + +FROM dart:3.11.0 AS build +WORKDIR /app + +COPY pubspec.yaml . +COPY dart_jit/ . + +EXPOSE 8080 +ENTRYPOINT ["dart", "run", "bin/server.dart"] \ No newline at end of file diff --git a/frameworks/Dart/dart3/dart3.dockerfile b/frameworks/Dart/dart3/dart3.dockerfile index 6b9a5b82753..5ec85d29a3d 100644 --- a/frameworks/Dart/dart3/dart3.dockerfile +++ b/frameworks/Dart/dart3/dart3.dockerfile @@ -3,7 +3,7 @@ FROM dart:3.11.0 AS build WORKDIR /app COPY pubspec.yaml . -COPY dart_native/bin/ bin/ +COPY dart_native/ . RUN dart compile exe bin/server.dart -o server diff --git a/frameworks/Dart/dart3/dart_aot/bin/server.dart b/frameworks/Dart/dart3/dart_aot/bin/server.dart index 4b0f1064942..2c1798730ea 100755 --- a/frameworks/Dart/dart3/dart_aot/bin/server.dart +++ b/frameworks/Dart/dart3/dart_aot/bin/server.dart @@ -25,11 +25,6 @@ final _jsonEncoder = JsonUtf8Encoder(); /// belong to a secondary "worker group". const _workerGroupTag = '--WORKER-GROUP'; -/// The maximum duration allowed for a single HTTP request to be processed. -/// This prevents slow clients or stalled logic from blocking the isolate's -/// event loop indefinitely. -const _requestTimeout = Duration(seconds: 8); - void main(List arguments) async { /// Create a mutable copy of the fixed-length arguments list. final args = [...arguments]; @@ -91,22 +86,14 @@ Future _startServer(List args) async { server ..defaultResponseHeaders.clear() /// Sets [HttpServer]'s [serverHeader]. - ..serverHeader = 'dart_aot'; - - /// Handles [HttpRequest]'s from [HttpServer]. - await for (final request in server) { - /// Asynchronously processes each request with an 8-second safety deadline - /// to prevent stalled connections from blocking the isolate event loop. - await _handleRequest(request).timeout( - _requestTimeout, - onTimeout: () => _sendResponse(request, HttpStatus.requestTimeout), - ); - } + ..serverHeader = 'dart_aot' + /// Handles [HttpRequest]'s from [HttpServer]. + ..listen(_handleRequest); } /// Dispatches requests to specific test handlers. Wrapped in a try-catch /// to ensure stable execution and guaranteed response delivery. -Future _handleRequest(HttpRequest request) async { +void _handleRequest(HttpRequest request) { try { switch (request.uri.path) { case '/json': diff --git a/frameworks/Dart/dart3/dart_jit/bin/server.dart b/frameworks/Dart/dart3/dart_jit/bin/server.dart new file mode 100755 index 00000000000..9ee80ee6ab3 --- /dev/null +++ b/frameworks/Dart/dart3/dart_jit/bin/server.dart @@ -0,0 +1,87 @@ +import 'dart:convert'; +import 'dart:io'; + +/// The fixed TCP port used by the server. +/// Defined here for visibility and ease of configuration. +const _defaultPort = 8080; + +/// A reusable instance of the UTF-8 JSON encoder to efficiently +/// transform Dart objects into byte arrays for HTTP responses. +final _jsonEncoder = JsonUtf8Encoder(); + +void main(List args) async { + /// Binds the [HttpServer] on `0.0.0.0:8080`. + final server = await HttpServer.bind( + InternetAddress.anyIPv4, + _defaultPort, + ); + + server + ..defaultResponseHeaders.clear() + /// Sets [HttpServer]'s [serverHeader]. + ..serverHeader = 'dart_jit' + /// Handles [HttpRequest]'s from [HttpServer]. + ..listen(_handleRequest); +} + +/// Dispatches requests to specific test handlers. Wrapped in a try-catch +/// to ensure stable execution and guaranteed response delivery. +void _handleRequest(HttpRequest request) { + try { + switch (request.uri.path) { + case '/json': + _jsonTest(request); + break; + case '/plaintext': + _plaintextTest(request); + break; + default: + _sendResponse(request, HttpStatus.notFound); + } + } catch (e) { + _sendResponse(request, HttpStatus.internalServerError); + } +} + +/// Completes the given [request] by writing the [bytes] with the given +/// [statusCode] and [type]. +void _sendResponse( + HttpRequest request, + int statusCode, { + ContentType? type, + List bytes = const [], +}) => request.response + ..statusCode = statusCode + ..headers.contentType = type + ..headers.date = DateTime.now() + ..contentLength = bytes.length + ..add(bytes) + ..close(); + +/// Completes the given [request] by writing the [response] as JSON. +void _sendJson(HttpRequest request, Object response) => _sendResponse( + request, + HttpStatus.ok, + type: ContentType.json, + bytes: _jsonEncoder.convert(response), +); + +/// Completes the given [request] by writing the [response] as plain text. +void _sendText(HttpRequest request, String response) => _sendResponse( + request, + HttpStatus.ok, + type: ContentType.text, + bytes: utf8.encode(response), +); + +/// Responds with the JSON test to the [request]. +void _jsonTest(HttpRequest request) => _sendJson( + request, + const {'message': 'Hello, World!'}, +); + +/// Responds with the plaintext test to the [request]. +void _plaintextTest(HttpRequest request) => _sendText( + request, + 'Hello, World!', +); diff --git a/frameworks/Dart/dart3/dart_native/bin/server.dart b/frameworks/Dart/dart3/dart_native/bin/server.dart index 029c6eaee1d..eb1cefab75b 100755 --- a/frameworks/Dart/dart3/dart_native/bin/server.dart +++ b/frameworks/Dart/dart3/dart_native/bin/server.dart @@ -10,11 +10,6 @@ const _defaultPort = 8080; /// transform Dart objects into byte arrays for HTTP responses. final _jsonEncoder = JsonUtf8Encoder(); -/// The maximum duration allowed for a single HTTP request to be processed. -/// This prevents slow clients or stalled logic from blocking the isolate's -/// event loop indefinitely. -const _requestTimeout = Duration(seconds: 8); - void main(List args) async { /// Create an [Isolate] containing an [HttpServer] /// for each processor after the first @@ -38,22 +33,14 @@ Future _startServer(List args) async { server ..defaultResponseHeaders.clear() /// Sets [HttpServer]'s [serverHeader]. - ..serverHeader = 'dart_native'; - - /// Handles [HttpRequest]'s from [HttpServer]. - await for (final request in server) { - /// Asynchronously processes each request with an 8-second safety deadline - /// to prevent stalled connections from blocking the isolate event loop. - await _handleRequest(request).timeout( - _requestTimeout, - onTimeout: () => _sendResponse(request, HttpStatus.requestTimeout), - ); - } + ..serverHeader = 'dart_native' + /// Handles [HttpRequest]'s from [HttpServer]. + ..listen(_handleRequest); } /// Dispatches requests to specific test handlers. Wrapped in a try-catch /// to ensure stable execution and guaranteed response delivery. -Future _handleRequest(HttpRequest request) async { +void _handleRequest(HttpRequest request) { try { switch (request.uri.path) { case '/json': From 1efbc85d4dc17b5883c6f37852beeac0b357c6e6 Mon Sep 17 00:00:00 2001 From: iapicca Date: Sat, 21 Mar 2026 17:33:56 +0200 Subject: [PATCH 02/11] move each implementation in its own folder --- frameworks/Dart/dart3/dart_jit/Dockerfile | 8 ++++++++ frameworks/Dart/dart3/dart_jit/analysis_options.yaml | 3 +++ frameworks/Dart/dart3/dart_jit/pubspec.yaml | 8 ++++++++ 3 files changed, 19 insertions(+) create mode 100644 frameworks/Dart/dart3/dart_jit/Dockerfile create mode 100644 frameworks/Dart/dart3/dart_jit/analysis_options.yaml create mode 100644 frameworks/Dart/dart3/dart_jit/pubspec.yaml diff --git a/frameworks/Dart/dart3/dart_jit/Dockerfile b/frameworks/Dart/dart3/dart_jit/Dockerfile new file mode 100644 index 00000000000..8148ddc30d7 --- /dev/null +++ b/frameworks/Dart/dart3/dart_jit/Dockerfile @@ -0,0 +1,8 @@ + +FROM dart:3.11.0 AS build +WORKDIR /app + +COPY . . + +EXPOSE 8080 +ENTRYPOINT ["dart", "run", "bin/server.dart"] \ No newline at end of file diff --git a/frameworks/Dart/dart3/dart_jit/analysis_options.yaml b/frameworks/Dart/dart3/dart_jit/analysis_options.yaml new file mode 100644 index 00000000000..926fdf8d193 --- /dev/null +++ b/frameworks/Dart/dart3/dart_jit/analysis_options.yaml @@ -0,0 +1,3 @@ +include: package:lints/recommended.yaml +formatter: + trailing_commas: preserve diff --git a/frameworks/Dart/dart3/dart_jit/pubspec.yaml b/frameworks/Dart/dart3/dart_jit/pubspec.yaml new file mode 100644 index 00000000000..872ebfd838c --- /dev/null +++ b/frameworks/Dart/dart3/dart_jit/pubspec.yaml @@ -0,0 +1,8 @@ +name: dart_jit_benchmark +description: A benchmark of Dart +environment: + sdk: ^3.11.0 + +dev_dependencies: + lints: ^6.1.0 + From 52c84ef12ff0c4bf2bbf6bb7961870eb4c5a4f9f Mon Sep 17 00:00:00 2001 From: iapicca Date: Sat, 21 Mar 2026 17:34:11 +0200 Subject: [PATCH 03/11] move each implementation in its own folder --- frameworks/Dart/dart3/benchmark_config.json | 3 +++ frameworks/Dart/dart3/dart3-jit.dockerfile | 9 --------- .../dart3/{dart3-aot.dockerfile => dart_aot/Dockerfile} | 3 +-- .../Dart/dart3/{ => dart_aot}/analysis_options.yaml | 0 frameworks/Dart/dart3/{ => dart_aot}/pubspec.yaml | 4 ++-- .../dart3/{dart3.dockerfile => dart_native/Dockerfile} | 3 +-- frameworks/Dart/dart3/dart_native/analysis_options.yaml | 3 +++ frameworks/Dart/dart3/dart_native/pubspec.yaml | 8 ++++++++ 8 files changed, 18 insertions(+), 15 deletions(-) delete mode 100644 frameworks/Dart/dart3/dart3-jit.dockerfile rename frameworks/Dart/dart3/{dart3-aot.dockerfile => dart_aot/Dockerfile} (92%) rename frameworks/Dart/dart3/{ => dart_aot}/analysis_options.yaml (100%) rename frameworks/Dart/dart3/{ => dart_aot}/pubspec.yaml (52%) rename frameworks/Dart/dart3/{dart3.dockerfile => dart_native/Dockerfile} (83%) create mode 100644 frameworks/Dart/dart3/dart_native/analysis_options.yaml create mode 100644 frameworks/Dart/dart3/dart_native/pubspec.yaml diff --git a/frameworks/Dart/dart3/benchmark_config.json b/frameworks/Dart/dart3/benchmark_config.json index 3eed4aaaadc..d6251b96e00 100644 --- a/frameworks/Dart/dart3/benchmark_config.json +++ b/frameworks/Dart/dart3/benchmark_config.json @@ -3,6 +3,7 @@ "maintainers": ["iapicca"], "tests": [{ "default": { + "dockerfile": "dart_native/Dockerfile", "display_name": "dart3_native", "json_url": "/json", "plaintext_url": "/plaintext", @@ -15,6 +16,7 @@ "database_os": "Linux" }, "aot": { + "dockerfile": "dart_aot/Dockerfile", "display_name": "dart3_aot", "json_url": "/json", "plaintext_url": "/plaintext", @@ -27,6 +29,7 @@ "database_os": "Linux" }, "jit": { + "dockerfile": "dart_jit/Dockerfile", "display_name": "dart3_jit", "json_url": "/json", "plaintext_url": "/plaintext", diff --git a/frameworks/Dart/dart3/dart3-jit.dockerfile b/frameworks/Dart/dart3/dart3-jit.dockerfile deleted file mode 100644 index 3370db613ae..00000000000 --- a/frameworks/Dart/dart3/dart3-jit.dockerfile +++ /dev/null @@ -1,9 +0,0 @@ - -FROM dart:3.11.0 AS build -WORKDIR /app - -COPY pubspec.yaml . -COPY dart_jit/ . - -EXPOSE 8080 -ENTRYPOINT ["dart", "run", "bin/server.dart"] \ No newline at end of file diff --git a/frameworks/Dart/dart3/dart3-aot.dockerfile b/frameworks/Dart/dart3/dart_aot/Dockerfile similarity index 92% rename from frameworks/Dart/dart3/dart3-aot.dockerfile rename to frameworks/Dart/dart3/dart_aot/Dockerfile index ec13d910071..6d526ccea33 100644 --- a/frameworks/Dart/dart3/dart3-aot.dockerfile +++ b/frameworks/Dart/dart3/dart_aot/Dockerfile @@ -4,8 +4,7 @@ WORKDIR /app ARG MAX_ISOLATES=8 -COPY pubspec.yaml . -COPY dart_aot/ . +COPY . . RUN dart compile aot-snapshot bin/server.dart \ --define=MAX_ISOLATES=${MAX_ISOLATES} \ diff --git a/frameworks/Dart/dart3/analysis_options.yaml b/frameworks/Dart/dart3/dart_aot/analysis_options.yaml similarity index 100% rename from frameworks/Dart/dart3/analysis_options.yaml rename to frameworks/Dart/dart3/dart_aot/analysis_options.yaml diff --git a/frameworks/Dart/dart3/pubspec.yaml b/frameworks/Dart/dart3/dart_aot/pubspec.yaml similarity index 52% rename from frameworks/Dart/dart3/pubspec.yaml rename to frameworks/Dart/dart3/dart_aot/pubspec.yaml index aeb53912216..020b4166287 100644 --- a/frameworks/Dart/dart3/pubspec.yaml +++ b/frameworks/Dart/dart3/dart_aot/pubspec.yaml @@ -1,5 +1,5 @@ -name: dartbenchmark -description: A benchmark of dart +name: dart_aot_benchmark +description: A benchmark of Dart environment: sdk: ^3.11.0 diff --git a/frameworks/Dart/dart3/dart3.dockerfile b/frameworks/Dart/dart3/dart_native/Dockerfile similarity index 83% rename from frameworks/Dart/dart3/dart3.dockerfile rename to frameworks/Dart/dart3/dart_native/Dockerfile index 5ec85d29a3d..137cf198fdc 100644 --- a/frameworks/Dart/dart3/dart3.dockerfile +++ b/frameworks/Dart/dart3/dart_native/Dockerfile @@ -2,8 +2,7 @@ FROM dart:3.11.0 AS build WORKDIR /app -COPY pubspec.yaml . -COPY dart_native/ . +COPY . . RUN dart compile exe bin/server.dart -o server diff --git a/frameworks/Dart/dart3/dart_native/analysis_options.yaml b/frameworks/Dart/dart3/dart_native/analysis_options.yaml new file mode 100644 index 00000000000..926fdf8d193 --- /dev/null +++ b/frameworks/Dart/dart3/dart_native/analysis_options.yaml @@ -0,0 +1,3 @@ +include: package:lints/recommended.yaml +formatter: + trailing_commas: preserve diff --git a/frameworks/Dart/dart3/dart_native/pubspec.yaml b/frameworks/Dart/dart3/dart_native/pubspec.yaml new file mode 100644 index 00000000000..a6016fd875a --- /dev/null +++ b/frameworks/Dart/dart3/dart_native/pubspec.yaml @@ -0,0 +1,8 @@ +name: dart_native_benchmark +description: A benchmark of Dart +environment: + sdk: ^3.11.0 + +dev_dependencies: + lints: ^6.1.0 + From 075c800d5a93bf9618f68ca6a8f26905ce5c384e Mon Sep 17 00:00:00 2001 From: iapicca Date: Sat, 21 Mar 2026 17:46:31 +0200 Subject: [PATCH 04/11] trial & error fix for dockerfile path in benchmark_config.json --- frameworks/Dart/dart3/benchmark_config.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/frameworks/Dart/dart3/benchmark_config.json b/frameworks/Dart/dart3/benchmark_config.json index d6251b96e00..cb663cfb89c 100644 --- a/frameworks/Dart/dart3/benchmark_config.json +++ b/frameworks/Dart/dart3/benchmark_config.json @@ -3,7 +3,7 @@ "maintainers": ["iapicca"], "tests": [{ "default": { - "dockerfile": "dart_native/Dockerfile", + "dockerfile": "./dart_native/Dockerfile", "display_name": "dart3_native", "json_url": "/json", "plaintext_url": "/plaintext", @@ -16,7 +16,7 @@ "database_os": "Linux" }, "aot": { - "dockerfile": "dart_aot/Dockerfile", + "dockerfile": "./dart_aot/Dockerfile", "display_name": "dart3_aot", "json_url": "/json", "plaintext_url": "/plaintext", @@ -29,7 +29,7 @@ "database_os": "Linux" }, "jit": { - "dockerfile": "dart_jit/Dockerfile", + "dockerfile": "./dart_jit/Dockerfile", "display_name": "dart3_jit", "json_url": "/json", "plaintext_url": "/plaintext", From 5a3d2844a60a0720e2d4c89cccc2264206ce4fc6 Mon Sep 17 00:00:00 2001 From: iapicca Date: Sat, 21 Mar 2026 17:53:21 +0200 Subject: [PATCH 05/11] trial & error fix for dockerfile path in benchmark_config.json (2) --- .../Dart/dart3/dart_aot/{Dockerfile => dart3-aot.dockerfile} | 0 .../Dart/dart3/dart_jit/{Dockerfile => dart3-jit.dockerfile} | 0 .../Dart/dart3/dart_native/{Dockerfile => dart3.dockerfile} | 0 3 files changed, 0 insertions(+), 0 deletions(-) rename frameworks/Dart/dart3/dart_aot/{Dockerfile => dart3-aot.dockerfile} (100%) rename frameworks/Dart/dart3/dart_jit/{Dockerfile => dart3-jit.dockerfile} (100%) rename frameworks/Dart/dart3/dart_native/{Dockerfile => dart3.dockerfile} (100%) diff --git a/frameworks/Dart/dart3/dart_aot/Dockerfile b/frameworks/Dart/dart3/dart_aot/dart3-aot.dockerfile similarity index 100% rename from frameworks/Dart/dart3/dart_aot/Dockerfile rename to frameworks/Dart/dart3/dart_aot/dart3-aot.dockerfile diff --git a/frameworks/Dart/dart3/dart_jit/Dockerfile b/frameworks/Dart/dart3/dart_jit/dart3-jit.dockerfile similarity index 100% rename from frameworks/Dart/dart3/dart_jit/Dockerfile rename to frameworks/Dart/dart3/dart_jit/dart3-jit.dockerfile diff --git a/frameworks/Dart/dart3/dart_native/Dockerfile b/frameworks/Dart/dart3/dart_native/dart3.dockerfile similarity index 100% rename from frameworks/Dart/dart3/dart_native/Dockerfile rename to frameworks/Dart/dart3/dart_native/dart3.dockerfile From 185d096bdd4b1bfbf0beb6e7ee694ec3a763be29 Mon Sep 17 00:00:00 2001 From: iapicca Date: Sat, 21 Mar 2026 17:59:33 +0200 Subject: [PATCH 06/11] revert 5a3d2844a --- .../Dart/dart3/dart_aot/{dart3-aot.dockerfile => Dockerfile} | 0 .../Dart/dart3/dart_jit/{dart3-jit.dockerfile => Dockerfile} | 0 .../Dart/dart3/dart_native/{dart3.dockerfile => Dockerfile} | 0 3 files changed, 0 insertions(+), 0 deletions(-) rename frameworks/Dart/dart3/dart_aot/{dart3-aot.dockerfile => Dockerfile} (100%) rename frameworks/Dart/dart3/dart_jit/{dart3-jit.dockerfile => Dockerfile} (100%) rename frameworks/Dart/dart3/dart_native/{dart3.dockerfile => Dockerfile} (100%) diff --git a/frameworks/Dart/dart3/dart_aot/dart3-aot.dockerfile b/frameworks/Dart/dart3/dart_aot/Dockerfile similarity index 100% rename from frameworks/Dart/dart3/dart_aot/dart3-aot.dockerfile rename to frameworks/Dart/dart3/dart_aot/Dockerfile diff --git a/frameworks/Dart/dart3/dart_jit/dart3-jit.dockerfile b/frameworks/Dart/dart3/dart_jit/Dockerfile similarity index 100% rename from frameworks/Dart/dart3/dart_jit/dart3-jit.dockerfile rename to frameworks/Dart/dart3/dart_jit/Dockerfile diff --git a/frameworks/Dart/dart3/dart_native/dart3.dockerfile b/frameworks/Dart/dart3/dart_native/Dockerfile similarity index 100% rename from frameworks/Dart/dart3/dart_native/dart3.dockerfile rename to frameworks/Dart/dart3/dart_native/Dockerfile From bd77c5e4875b96a3df71c2af71c6494bec206c9b Mon Sep 17 00:00:00 2001 From: iapicca Date: Sat, 21 Mar 2026 18:02:10 +0200 Subject: [PATCH 07/11] trial & error fix for dockerfile path in benchmark_config.json (3) --- frameworks/Dart/dart3/dart_aot/Dockerfile | 2 +- frameworks/Dart/dart3/dart_jit/Dockerfile | 2 +- frameworks/Dart/dart3/dart_native/Dockerfile | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/frameworks/Dart/dart3/dart_aot/Dockerfile b/frameworks/Dart/dart3/dart_aot/Dockerfile index 6d526ccea33..5e6b2f70fb6 100644 --- a/frameworks/Dart/dart3/dart_aot/Dockerfile +++ b/frameworks/Dart/dart3/dart_aot/Dockerfile @@ -4,7 +4,7 @@ WORKDIR /app ARG MAX_ISOLATES=8 -COPY . . +COPY dart_aot/ . RUN dart compile aot-snapshot bin/server.dart \ --define=MAX_ISOLATES=${MAX_ISOLATES} \ diff --git a/frameworks/Dart/dart3/dart_jit/Dockerfile b/frameworks/Dart/dart3/dart_jit/Dockerfile index 8148ddc30d7..f701ca2bbec 100644 --- a/frameworks/Dart/dart3/dart_jit/Dockerfile +++ b/frameworks/Dart/dart3/dart_jit/Dockerfile @@ -2,7 +2,7 @@ FROM dart:3.11.0 AS build WORKDIR /app -COPY . . +COPY dart_jit/ . EXPOSE 8080 ENTRYPOINT ["dart", "run", "bin/server.dart"] \ No newline at end of file diff --git a/frameworks/Dart/dart3/dart_native/Dockerfile b/frameworks/Dart/dart3/dart_native/Dockerfile index 137cf198fdc..1e47ebff2ef 100644 --- a/frameworks/Dart/dart3/dart_native/Dockerfile +++ b/frameworks/Dart/dart3/dart_native/Dockerfile @@ -2,7 +2,7 @@ FROM dart:3.11.0 AS build WORKDIR /app -COPY . . +COPY dart_native/ . RUN dart compile exe bin/server.dart -o server From 9c6ff43efa492e8826cbf3ee7c47ef6f672ab21a Mon Sep 17 00:00:00 2001 From: iapicca Date: Sat, 21 Mar 2026 18:05:04 +0200 Subject: [PATCH 08/11] trial & error fix for dockerfile path in benchmark_config.json (4) --- frameworks/Dart/dart3/benchmark_config.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/frameworks/Dart/dart3/benchmark_config.json b/frameworks/Dart/dart3/benchmark_config.json index cb663cfb89c..d6251b96e00 100644 --- a/frameworks/Dart/dart3/benchmark_config.json +++ b/frameworks/Dart/dart3/benchmark_config.json @@ -3,7 +3,7 @@ "maintainers": ["iapicca"], "tests": [{ "default": { - "dockerfile": "./dart_native/Dockerfile", + "dockerfile": "dart_native/Dockerfile", "display_name": "dart3_native", "json_url": "/json", "plaintext_url": "/plaintext", @@ -16,7 +16,7 @@ "database_os": "Linux" }, "aot": { - "dockerfile": "./dart_aot/Dockerfile", + "dockerfile": "dart_aot/Dockerfile", "display_name": "dart3_aot", "json_url": "/json", "plaintext_url": "/plaintext", @@ -29,7 +29,7 @@ "database_os": "Linux" }, "jit": { - "dockerfile": "./dart_jit/Dockerfile", + "dockerfile": "dart_jit/Dockerfile", "display_name": "dart3_jit", "json_url": "/json", "plaintext_url": "/plaintext", From 69c7a953e5a36f8e83567ffed9305485f0ff016e Mon Sep 17 00:00:00 2001 From: iapicca Date: Sat, 21 Mar 2026 18:46:52 +0200 Subject: [PATCH 09/11] trial & error fix for dockerfile path in benchmark_config.json (5) --- frameworks/Dart/dart3/dart_aot/Dockerfile | 3 ++- frameworks/Dart/dart3/dart_jit/Dockerfile | 3 ++- frameworks/Dart/dart3/dart_native/Dockerfile | 3 ++- 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/frameworks/Dart/dart3/dart_aot/Dockerfile b/frameworks/Dart/dart3/dart_aot/Dockerfile index 5e6b2f70fb6..e3347941597 100644 --- a/frameworks/Dart/dart3/dart_aot/Dockerfile +++ b/frameworks/Dart/dart3/dart_aot/Dockerfile @@ -4,7 +4,8 @@ WORKDIR /app ARG MAX_ISOLATES=8 -COPY dart_aot/ . +COPY dart_aot/pubspec.yaml . +COPY dart_aot/bin/ bin/ RUN dart compile aot-snapshot bin/server.dart \ --define=MAX_ISOLATES=${MAX_ISOLATES} \ diff --git a/frameworks/Dart/dart3/dart_jit/Dockerfile b/frameworks/Dart/dart3/dart_jit/Dockerfile index f701ca2bbec..5a044e35fcd 100644 --- a/frameworks/Dart/dart3/dart_jit/Dockerfile +++ b/frameworks/Dart/dart3/dart_jit/Dockerfile @@ -2,7 +2,8 @@ FROM dart:3.11.0 AS build WORKDIR /app -COPY dart_jit/ . +COPY dart_jit/pubspec.yaml . +COPY dart_jit/bin/ bin/ EXPOSE 8080 ENTRYPOINT ["dart", "run", "bin/server.dart"] \ No newline at end of file diff --git a/frameworks/Dart/dart3/dart_native/Dockerfile b/frameworks/Dart/dart3/dart_native/Dockerfile index 1e47ebff2ef..ec37abb07b3 100644 --- a/frameworks/Dart/dart3/dart_native/Dockerfile +++ b/frameworks/Dart/dart3/dart_native/Dockerfile @@ -2,7 +2,8 @@ FROM dart:3.11.0 AS build WORKDIR /app -COPY dart_native/ . +COPY dart_native/pubspec.yaml . +COPY dart_native/bin/ bin/ RUN dart compile exe bin/server.dart -o server From c442df6a734f996322b07d0d2d0b113a4d11bf26 Mon Sep 17 00:00:00 2001 From: iapicca Date: Sat, 21 Mar 2026 20:08:53 +0200 Subject: [PATCH 10/11] give up and move back dockerfiles in root folder --- frameworks/Dart/dart3/benchmark_config.json | 3 --- .../Dart/dart3/{dart_aot/Dockerfile => dart3-aot.dockerfile} | 3 +-- .../Dart/dart3/{dart_jit/Dockerfile => dart3-jit.dockerfile} | 3 +-- .../Dart/dart3/{dart_native/Dockerfile => dart3.dockerfile} | 3 +-- 4 files changed, 3 insertions(+), 9 deletions(-) rename frameworks/Dart/dart3/{dart_aot/Dockerfile => dart3-aot.dockerfile} (89%) rename frameworks/Dart/dart3/{dart_jit/Dockerfile => dart3-jit.dockerfile} (65%) rename frameworks/Dart/dart3/{dart_native/Dockerfile => dart3.dockerfile} (77%) diff --git a/frameworks/Dart/dart3/benchmark_config.json b/frameworks/Dart/dart3/benchmark_config.json index d6251b96e00..3eed4aaaadc 100644 --- a/frameworks/Dart/dart3/benchmark_config.json +++ b/frameworks/Dart/dart3/benchmark_config.json @@ -3,7 +3,6 @@ "maintainers": ["iapicca"], "tests": [{ "default": { - "dockerfile": "dart_native/Dockerfile", "display_name": "dart3_native", "json_url": "/json", "plaintext_url": "/plaintext", @@ -16,7 +15,6 @@ "database_os": "Linux" }, "aot": { - "dockerfile": "dart_aot/Dockerfile", "display_name": "dart3_aot", "json_url": "/json", "plaintext_url": "/plaintext", @@ -29,7 +27,6 @@ "database_os": "Linux" }, "jit": { - "dockerfile": "dart_jit/Dockerfile", "display_name": "dart3_jit", "json_url": "/json", "plaintext_url": "/plaintext", diff --git a/frameworks/Dart/dart3/dart_aot/Dockerfile b/frameworks/Dart/dart3/dart3-aot.dockerfile similarity index 89% rename from frameworks/Dart/dart3/dart_aot/Dockerfile rename to frameworks/Dart/dart3/dart3-aot.dockerfile index e3347941597..5e6b2f70fb6 100644 --- a/frameworks/Dart/dart3/dart_aot/Dockerfile +++ b/frameworks/Dart/dart3/dart3-aot.dockerfile @@ -4,8 +4,7 @@ WORKDIR /app ARG MAX_ISOLATES=8 -COPY dart_aot/pubspec.yaml . -COPY dart_aot/bin/ bin/ +COPY dart_aot/ . RUN dart compile aot-snapshot bin/server.dart \ --define=MAX_ISOLATES=${MAX_ISOLATES} \ diff --git a/frameworks/Dart/dart3/dart_jit/Dockerfile b/frameworks/Dart/dart3/dart3-jit.dockerfile similarity index 65% rename from frameworks/Dart/dart3/dart_jit/Dockerfile rename to frameworks/Dart/dart3/dart3-jit.dockerfile index 5a044e35fcd..f701ca2bbec 100644 --- a/frameworks/Dart/dart3/dart_jit/Dockerfile +++ b/frameworks/Dart/dart3/dart3-jit.dockerfile @@ -2,8 +2,7 @@ FROM dart:3.11.0 AS build WORKDIR /app -COPY dart_jit/pubspec.yaml . -COPY dart_jit/bin/ bin/ +COPY dart_jit/ . EXPOSE 8080 ENTRYPOINT ["dart", "run", "bin/server.dart"] \ No newline at end of file diff --git a/frameworks/Dart/dart3/dart_native/Dockerfile b/frameworks/Dart/dart3/dart3.dockerfile similarity index 77% rename from frameworks/Dart/dart3/dart_native/Dockerfile rename to frameworks/Dart/dart3/dart3.dockerfile index ec37abb07b3..1e47ebff2ef 100644 --- a/frameworks/Dart/dart3/dart_native/Dockerfile +++ b/frameworks/Dart/dart3/dart3.dockerfile @@ -2,8 +2,7 @@ FROM dart:3.11.0 AS build WORKDIR /app -COPY dart_native/pubspec.yaml . -COPY dart_native/bin/ bin/ +COPY dart_native/ . RUN dart compile exe bin/server.dart -o server From 334b235db27c361d1e7236203c2ab7a80f913d40 Mon Sep 17 00:00:00 2001 From: iapicca Date: Sat, 21 Mar 2026 20:11:45 +0200 Subject: [PATCH 11/11] fix typo in README --- frameworks/Dart/dart3/README.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/frameworks/Dart/dart3/README.md b/frameworks/Dart/dart3/README.md index f317366430b..6e6b6ba304d 100644 --- a/frameworks/Dart/dart3/README.md +++ b/frameworks/Dart/dart3/README.md @@ -10,8 +10,6 @@ The tests were run with: ### JIT -### JIT - Simplest possible implementation utilizing the standard Dart VM. Results in the highest footprint both in terms of image size and memory consumption. ([source code](https://github.com/TechEmpower/FrameworkBenchmarks/tree/master/frameworks/Dart/dart3/dart_jit))