Skip to content

aa#50

Merged
smthing merged 137 commits intosmartboot:masterfrom
TechEmpower:master
Dec 12, 2025
Merged

aa#50
smthing merged 137 commits intosmartboot:masterfrom
TechEmpower:master

Conversation

@smthing
Copy link

@smthing smthing commented Dec 12, 2025

No description provided.

AkazawaYun and others added 30 commits November 6, 2025 12:52
* add new test : CSharp/akazawayun.pro

* modify config and code

* add content-type

* update url

* update package version

* add 3 new tests: db、queries、updates

1. add 3 new tests: db、queries、updates;
2. split code to multi files;

* -

* use generated sql instead const string.

* update version

* fix bug of db query

* set port to 8080

* 升级 akazawayun.pro 框架版本到 14

* i forget to update the port change...

* test self whether work fine..

* update nuget version

* why pr failed...

* 不小心多提交了别人的框架...改回

* akazawayun fix bug

* remove db test

there is some error in mysql

* confirmed there is bug in mysql.data 9.5.0

还是用8080端口吧- -b, 都用8080, 改其他的对比测时不方便

* downgrade mysql.data back to 9.4.0

* fix bug of akazawayun.pro

* update version of akazawayun.pro

* update version

* add platform test

* update nupkg version
- fix classpath issue on jetty/undertow tests
openjdk images have been deprecated and 25-jdk-slim image was removed
Did not upgrade reitit-async due to failing run
Use square brackers for test variants names.
* Add Unhinged adapter with genhttp

* Update Unhinged to 9.0.5

* Update dependencies, unhinged to micro, added http parsing and routing
Avoids the following warning when running just the fortune tests:

    \#<NameError: uninitialized constant HelloWorld::ERB
select_random_numbers and sql_log_level don't seem to get used.
* 适配最新版

* upgrade smart-socket

* upgrade smart-socket

* upgrade smart-socket

* upgrade smart-socket

* upgrade feat

* upgrade feat

* upgrade feat

* upgrade feat

* upgrade feat

* upgrade feat

* upgrade feat

* upgrade feat
Make sure that APT does not install anything unnecessary.

Signed-off-by: Anton Kirilov <antonvkirilov@proton.me>
* Add water-http framework

* benchmark_config.json update
rack-app is a minimalist web framework that focuses on simplicity and
maintainability. The framework is meant to be used by seasoned web
developers.
Unicorn is no longer maintained.
Replace Puma with Iodine, as it performs better than Puma in these benchmarks.
increase queue_size for pass DB job
* brahma-firelight added

* cluster mode enabled
* fix broken java base images

* Update Hikari CP settings in httpserver and ring-http-exchange

* Add semeru to ring-http-exchange

---------

Co-authored-by: jj <keistaslogairkosulys@gmail.com>
* update(touchsocket):version to 4.0.0-rc.2

* update(touchsocket):version to 4.0.0-rc.5

* optimize(touchsocket):scheduler

* Performance (TouchSocketHttp, TouchSocketWebApi): Enable server garbage collection

* update(touchsocket):version to 4.0.0-rc.15

* update(touchsocket):version to 4.0.0-rc42

* 重构(Program): 显式指定变量类型并优化配置

显式指定变量类型以提高代码可读性和类型安全性
修改命名空间为 `TouchSocketHttp`
将 `options.BufferOnDemand` 默认值从 `false` 修改为 `true`
调整 `SetTransportOption` 和 `ApiServer` 中的相关代码

* 优化(csproj): 升级TouchSocket包版本

在TouchSocketHttp.csproj和TouchSocketWebApi.csproj中,将TouchSocket.Hosting和TouchSocket.WebApi的包引用版本从4.0.0-rc.42升级到4.0.0-rc.44,以修复错误、提高性能或增加新功能
* update sisk cadente

* add missing dependencies to aot test

* remove aot test

* fix: plaintext strings

* update cadente version

* update cadente version

* update sisk benchmarks
* add new test : CSharp/akazawayun.pro

* modify config and code

* add content-type

* update url

* update package version

* add 3 new tests: db、queries、updates

1. add 3 new tests: db、queries、updates;
2. split code to multi files;

* -

* use generated sql instead const string.

* update version

* fix bug of db query

* set port to 8080

* 升级 akazawayun.pro 框架版本到 14

* i forget to update the port change...

* test self whether work fine..

* update nuget version

* why pr failed...

* 不小心多提交了别人的框架...改回

* akazawayun fix bug

* remove db test

there is some error in mysql

* confirmed there is bug in mysql.data 9.5.0

还是用8080端口吧- -b, 都用8080, 改其他的对比测时不方便

* downgrade mysql.data back to 9.4.0

* fix bug of akazawayun.pro

* update version of akazawayun.pro

* update version

* add platform test

* update nupkg version

* update version
* feat: port

* feat: port

* feat: db

* feat: db

* feat: db

* feat: lock

* feat: lock

* feat: v4.41.0

* feat: v4.42.0

* Merge remote-tracking branch 'upstream/master'

* Merge remote-tracking branch 'upstream/master'

* feat: inline

* feat: dockerfile

* feat: v4.52.1

* feat: remove key

* remove: log

* remove: log

* feat: async

* remove: empty loop

* feat: utf8

* change: pool_size

* remove: utf8

* feat: log

* feat: log

* feat: v3.14.1

* feat: 4.56.3

* feat: 4.56.4

* feat: 4.56.5

* feat:  rename

* Merge branch 'master' of github.com:TechEmpower/FrameworkBenchmarks

* feat: speed

* feat: speed

* lock: toml

* lock: toml

* lock: toml

* lock: toml

* lock: toml

* lock: toml

* lock: toml

* lock: toml

* lock: toml

* lock: toml

* lock: toml

* lock: toml

* lock: toml

* feat: runtime

* feat: runtime

* feat: runtime

* lock: toml

* lock: toml

* lock: toml

* lock: toml

* lock: toml

* lock: toml

* lock: toml

* lock: toml

* feat: update

* Merge remote-tracking branch 'upstream/master'

* feat: update

* feat: update

* feat: update

* feat: update

* feat: update

* feat: update

* feat: update

* feat: update

* feat: update

* feat: update

* feat: update

* feat: update

* feat: update

* feat: update

* feat: update

* feat: update

* feat: update

* feat: update

* feat: update

* feat: update

* feat: update

* feat: update

* feat: update

* Merge remote-tracking branch 'upstream/master'

* feat: hyperlane

* feat: update

* docs: readme

* feat: update

* Merge remote-tracking branch 'upstream/master'

* feat: update

* feat: update

* feat: update

* Merge remote-tracking branch 'upstream/master'

* feat: update

* feat: update

* feat: update

* feat: update

* feat: update

* feat: update

* feat: lock

* feat: use super

* feat: update lock

* feat: update

* feat: update lock

* feat: update lock

* feat: update lock

* feat: lock

* feat: update lock

* feat: update lock

* feat: update lock

* feat: update lock

* feat: update lock

* feat: update lock

* feat: update lock

* feat: update lock

* feat: update lock

* feat: update lock

* feat: update lock

* feat: update lock

* feat: update lock

* Merge remote-tracking branch 'upstream/master'

* feat: update

* feat: utf8

* feat: utf8

* feat: lock

* feat: update

* feat: update

* feat: update

* feat: update

* feat: update

* feat: update

* feat: update

* feat: update

* feat: update

* feat: update

* feat: update

* feat: update

* update: code

* feat: update

* feat: update

* feat: update

* feat: update

* feat: update

* feat: update

* feat: update

* Merge remote-tracking branch 'upstream/master'

* feat: update version

* feat: update version

* update: code

* Merge remote-tracking branch 'upstream/master'

* feat: lock

* feat: lock

* feat: lock

* feat: lock

* feat: lock

* feat: lock

* feat: lock

* feat: error handle

* feat: dep

* feat: get_thread_count

* update: code

* feat: lock

* feat: speed

* feat: speed

* update: code

* feat: speed

* update: code

* feat: lock

* fix: Framework hyperlane does not define a default test in benchmark_config.json

* feat: hyperlane http version

* feat: hyperlane http version

* feat: toml

* feat: toml

* feat: toml

* feat: toml

* feat: v0.1.0

* feat: toml

* feat: v6

* feat: v6

* feat: v6

* feat: v6

* feat: v6

* debug: test cache

* debug: test cache

* feat: v6

* feat: send unwrap

* feat: v6

* feat: v6

* feat: v0.1.0

* feat: toml

* feat: toml

* feat: db

* feat: toml

* feat: toml

* feat: toml

* feat: toml

* feat: dir update

* feat: toml

* feat: toml

* feat: toml

* feat: toml

* feat: toml

* feat: toml

* feat: toml

* feat: toml

* feat: toml

* feat: toml

* feat: toml

* feat: toml

* feat: toml

* feat: toml

* feat: toml

* feat: 2025-10-24 12:22:32

* feat: v0.1.0

* Merge branch 'master' of github.com:TechEmpower/FrameworkBenchmarks

* feat: v0.1.0

* Merge branch 'master' of github.com:TechEmpower/FrameworkBenchmarks

* feat: 2025-11-09 18:38:22

---------

Co-authored-by: 尤雨东 <83822098+ltpp-universe@users.noreply.github.com>
Signed-off-by: Anton Kirilov <antonvkirilov@proton.me>
> The number of test mutations will be limited to 10.
#8420

This change shows a warning message for frameworks if the maximum is reached.
* feat: add `--force-rm` flag to configure removing intermediate docker layers

This commit makes it possible to turn off the removal of intermediate
docker layers when building the tfb containers by adding a `--force-rm`
flag to the tfb script. This is useful in situations where you want to
inspect the intermediate layers for debugging purposes, or for caching
builds of dependencies as a docker layer to speed up the build process.

Note that the default behavior is to remove the intermediate layers to
avoid filling up the disk with unused layers on the citrine server.

Fixes: #9718

* hyper: cache dependencies to reduce build time

This change reduces the time it takes to build the hyper Docker image by
caching the dependency builds. This is done by building a dummy binary
before copying the source code into the image.

* Change default for --force-rm to False

---------

Co-authored-by: Mike Smith <msmith@techempower.com>
* Sync the update of the Ripple

* Sync the update of the Ripple
* [PHP] remove unused extension, polyfill

symfony, laravel

* [PHP] add laravel, symfony workers intl extension
* add new test : CSharp/akazawayun.pro

* modify config and code

* add content-type

* update url

* update package version

* add 3 new tests: db、queries、updates

1. add 3 new tests: db、queries、updates;
2. split code to multi files;

* -

* use generated sql instead const string.

* update version

* fix bug of db query

* set port to 8080

* 升级 akazawayun.pro 框架版本到 14

* i forget to update the port change...

* test self whether work fine..

* update nuget version

* why pr failed...

* 不小心多提交了别人的框架...改回

* akazawayun fix bug

* remove db test

there is some error in mysql

* confirmed there is bug in mysql.data 9.5.0

还是用8080端口吧- -b, 都用8080, 改其他的对比测时不方便

* downgrade mysql.data back to 9.4.0

* fix bug of akazawayun.pro

* update version of akazawayun.pro

* update version

* add platform test

* update nupkg version

* update version

* update version.

* fix debug
Signed-off-by: Anton Kirilov <antonvkirilov@proton.me>
p8 and others added 29 commits December 8, 2025 09:43
The current test are both failing as they use an EOL version of Java.
Hot hasn't been updated in 3 years.
The current test fails as it is using an EOL version of Java.
Grails is actively maintained, so mark it as broken instead.
* update ktor to user Gradle

* fix r2dbc update

* improve updates

* use pipelining of r2dbc to improve perf

* fixed and optimized pgclient

* fixed jettyf
…Python/eve/werkzeug-3.1.4

Build(deps): bump werkzeug from 0.15.5 to 3.1.4 in /frameworks/Python/eve
* feat: inline

* feat: dockerfile

* feat: v4.52.1

* feat: remove key

* remove: log

* remove: log

* feat: async

* remove: empty loop

* feat: utf8

* change: pool_size

* remove: utf8

* feat: log

* feat: log

* feat: v3.14.1

* feat: 4.56.3

* feat: 4.56.4

* feat: 4.56.5

* feat:  rename

* Merge branch 'master' of github.com:TechEmpower/FrameworkBenchmarks

* feat: speed

* feat: speed

* lock: toml

* lock: toml

* lock: toml

* lock: toml

* lock: toml

* lock: toml

* lock: toml

* lock: toml

* lock: toml

* lock: toml

* lock: toml

* lock: toml

* lock: toml

* feat: runtime

* feat: runtime

* feat: runtime

* lock: toml

* lock: toml

* lock: toml

* lock: toml

* lock: toml

* lock: toml

* lock: toml

* lock: toml

* feat: update

* Merge remote-tracking branch 'upstream/master'

* feat: update

* feat: update

* feat: update

* feat: update

* feat: update

* feat: update

* feat: update

* feat: update

* feat: update

* feat: update

* feat: update

* feat: update

* feat: update

* feat: update

* feat: update

* feat: update

* feat: update

* feat: update

* feat: update

* feat: update

* feat: update

* feat: update

* feat: update

* Merge remote-tracking branch 'upstream/master'

* feat: hyperlane

* feat: update

* docs: readme

* feat: update

* Merge remote-tracking branch 'upstream/master'

* feat: update

* feat: update

* feat: update

* Merge remote-tracking branch 'upstream/master'

* feat: update

* feat: update

* feat: update

* feat: update

* feat: update

* feat: update

* feat: lock

* feat: use super

* feat: update lock

* feat: update

* feat: update lock

* feat: update lock

* feat: update lock

* feat: lock

* feat: update lock

* feat: update lock

* feat: update lock

* feat: update lock

* feat: update lock

* feat: update lock

* feat: update lock

* feat: update lock

* feat: update lock

* feat: update lock

* feat: update lock

* feat: update lock

* feat: update lock

* Merge remote-tracking branch 'upstream/master'

* feat: update

* feat: utf8

* feat: utf8

* feat: lock

* feat: update

* feat: update

* feat: update

* feat: update

* feat: update

* feat: update

* feat: update

* feat: update

* feat: update

* feat: update

* feat: update

* feat: update

* update: code

* feat: update

* feat: update

* feat: update

* feat: update

* feat: update

* feat: update

* feat: update

* Merge remote-tracking branch 'upstream/master'

* feat: update version

* feat: update version

* update: code

* Merge remote-tracking branch 'upstream/master'

* feat: lock

* feat: lock

* feat: lock

* feat: lock

* feat: lock

* feat: lock

* feat: lock

* feat: error handle

* feat: dep

* feat: get_thread_count

* update: code

* feat: lock

* feat: speed

* feat: speed

* update: code

* feat: speed

* update: code

* feat: lock

* fix: Framework hyperlane does not define a default test in benchmark_config.json

* feat: hyperlane http version

* feat: hyperlane http version

* feat: toml

* feat: toml

* feat: toml

* feat: toml

* feat: v0.1.0

* feat: toml

* feat: v6

* feat: v6

* feat: v6

* feat: v6

* feat: v6

* debug: test cache

* debug: test cache

* feat: v6

* feat: send unwrap

* feat: v6

* feat: v6

* feat: v0.1.0

* feat: toml

* feat: toml

* feat: db

* feat: toml

* feat: toml

* feat: toml

* feat: toml

* feat: dir update

* feat: toml

* feat: toml

* feat: toml

* feat: toml

* feat: toml

* feat: toml

* feat: toml

* feat: toml

* feat: toml

* feat: toml

* feat: toml

* feat: toml

* feat: toml

* feat: toml

* feat: toml

* feat: 2025-10-24 12:22:32

* feat: v0.1.0

* Merge branch 'master' of github.com:TechEmpower/FrameworkBenchmarks

* feat: v0.1.0

* Merge branch 'master' of github.com:TechEmpower/FrameworkBenchmarks

* feat: 2025-11-09 18:38:22

* feat: toml

* feat: toml

* feat: buffer

* feat: toml

* feat: toml

* feat: toml

* feat: toml

* feat: toml

* feat: toml

---------

Co-authored-by: 尤雨东 <83822098+ltpp-universe@users.noreply.github.com>
This setting seems to improve performance so I'd like to enable it for a
lot more frameworks. By removing it this run and enabling it for all
next run, we can have a better comparison.
* 优化(MyTcpSessionClientBase): 优化异步逻辑与代码结构

重构MyTcpSessionClientBase类以提升性能与可读性:
- 将Json和Plaintext字段从public改为private
- 优化pipeReader.ReadAsync与pipeWriter.FlushAsync的异步调用逻辑
- 为关键方法添加AggressiveOptimization标记以启用编译优化
- 简化TryReadLine方法的行尾标记处理逻辑
- 优化ParseUrlFast方法的URL解析逻辑,减少冗余代码
- 重构WriteResponseSync方法,使用if-else替代switch语句
- 删除冗余注释与代码,提升代码整洁度

* 优化(project): 升级TouchSocket相关包版本

升级TouchSocket相关包版本以使用最新功能和修复

- 在 `TouchSocketHttp.csproj` 中,将 `TouchSocket.WebApi` 替换为 `TouchSocket.Http`,并将版本更新至 `4.0.2`
- 在 `TouchSocketHttpPlatform.csproj` 中,将 `TouchSocket` 包版本更新至 `4.0.2`
- 在 `TouchSocketWebApi.csproj` 中:
  - 将 `TouchSocket.Hosting` 包版本更新至 `4.0.2`
  - 将 `TouchSocket.WebApi` 包版本更新至 `4.0.2`
Signed-off-by: Anton Kirilov <antonvkirilov@proton.me>
* 优化(MyTcpSessionClientBase): 优化异步逻辑与代码结构

重构MyTcpSessionClientBase类以提升性能与可读性:
- 将Json和Plaintext字段从public改为private
- 优化pipeReader.ReadAsync与pipeWriter.FlushAsync的异步调用逻辑
- 为关键方法添加AggressiveOptimization标记以启用编译优化
- 简化TryReadLine方法的行尾标记处理逻辑
- 优化ParseUrlFast方法的URL解析逻辑,减少冗余代码
- 重构WriteResponseSync方法,使用if-else替代switch语句
- 删除冗余注释与代码,提升代码整洁度

* 优化(project): 升级TouchSocket相关包版本

升级TouchSocket相关包版本以使用最新功能和修复

- 在 `TouchSocketHttp.csproj` 中,将 `TouchSocket.WebApi` 替换为 `TouchSocket.Http`,并将版本更新至 `4.0.2`
- 在 `TouchSocketHttpPlatform.csproj` 中,将 `TouchSocket` 包版本更新至 `4.0.2`
- 在 `TouchSocketWebApi.csproj` 中:
  - 将 `TouchSocket.Hosting` 包版本更新至 `4.0.2`
  - 将 `TouchSocket.WebApi` 包版本更新至 `4.0.2`

* 优化(benchmark_config): 更新display_name格式以包含版本信息
5 threads is recommended, this also makes sure results are more
predictable when run on different environments.
* Upgrade to .NET 10.0.1

* Avoid extra copy by pinning the internal buffer instead

---------

Co-authored-by: LLT21 <>
* Bump all dependencies and toolchains to the latest

* Migrate to Vert.x 5 APIs and bump Kotlin to 2.3.0-RC2 to support Java 25

* Update catching the "connection" reset exceptions

* Try setting `date` with kotlinx-datetime but it doesn't work as expected

Got `java.lang.IllegalStateException: Field offsetHours is not set`.

* Remove the kotlinx-datetime dependency and update the comment

See commit 9cf28f1 for a failed attempt to try using kotlinx-datetime.

* Get setting `date` with `kotlinx-datetime` to work

ref: huanshankeji#1

* Review and port some of the changes in `FrameworkBenchmarks/frameworks/Java/vertx/` from commit 057c25b to commit 1838aa5, and fix some typos

Some changes are not ported.

There is about 5% performance improvement in the JSON test as tested on my device.

* Increase the io_uring completion queue size to resolve warnings and improve the plaintext test performance

```
io.netty.channel.uring.IoUringIoHandler processCompletionsAndHandleOverflow
vertx: WARNING: CompletionQueue overflow detected, consider increasing size: 4096
```

This is still one warning when the value is set to 8192 as tested on my device, instead of many for the default 4096.

* Benchmark Approach 1 and Approach 3 in `jsonResponseCoHandler` again and fix capitalization BTW

The "Requests/sec" result of Approach 1 is only 40% of Approach 3 as tested on my device.

* Remove an outdated comment as found by Gemini Code Assist

* Use the "connection reset" error code from Netty instead of hard-coding it and also catch Java NIO `SocketException` for developing on other OSs such as macOS and Windows

Tested with the `tfb` command on both macOS and Linux.

* Fix some errors and keep things updated in benchmark_config.json and README.md
…use io_uring (#10384)

I see the following warnings when running these benchmarks on my device:
```
io.netty.channel.uring.IoUringIoHandler processCompletionsAndHandleOverflow
vertx: WARNING: CompletionQueue overflow detected, consider increasing size: 4096
```
This should also improve the performance of JRuby where previously the
threads were hardcoded to 512:

+---------------------+-----+-----+-----+------+-------+---------+--------------+
|          branch_name| json|   db|query|update|fortune|plaintext|weighted_score|
+---------------------+-----+-----+-----+------+-------+---------+--------------+
|               master|15415|14528|12212| 11690|  13936|   144433|          1185|
| threads = processors|30345|45011|32726| 22101|  39920|   112966|          2512|
|rack/puma-max-threads|29204|50077|45459| 25358|  41560|   117562|          3026|
+---------------------+-----+-----+-----+------+-------+---------+--------------+
Also extract most logic to a boot.rb, similarly to other Ruby
frameworks.
* [php] CakePHP update to PHP 8.5

* Fix deprecated RFC

* Update error reporting settings for PHP 8.5

* Quiet composer

* Update benchmark_config.json for CakePHP [skip]
Onyx had the last commit 6 years ago.
Signed-off-by: Anton Kirilov <antonvkirilov@proton.me>
@smthing smthing merged commit 8fbf80e into smartboot:master Dec 12, 2025
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.