From 625f00aecae59d23b7cd617d3ff13efeadcf456b Mon Sep 17 00:00:00 2001 From: AkazawaYun <408193813@qq.com> Date: Sun, 27 Jul 2025 19:30:46 +0800 Subject: [PATCH 01/50] add new test : CSharp/akazawayun.pro --- frameworks/CSharp/akazawayun.pro/README.md | 1 + .../akazawayun.pro/akazawayun.pro.dockerfile | 13 +++++++ .../akazawayun.pro/benchmark_config.json | 24 +++++++++++++ .../src/AkazawaYun.FrameworkBenchmarks.csproj | 19 ++++++++++ .../CSharp/akazawayun.pro/src/Program.cs | 36 +++++++++++++++++++ 5 files changed, 93 insertions(+) create mode 100644 frameworks/CSharp/akazawayun.pro/README.md create mode 100644 frameworks/CSharp/akazawayun.pro/akazawayun.pro.dockerfile create mode 100644 frameworks/CSharp/akazawayun.pro/benchmark_config.json create mode 100644 frameworks/CSharp/akazawayun.pro/src/AkazawaYun.FrameworkBenchmarks.csproj create mode 100644 frameworks/CSharp/akazawayun.pro/src/Program.cs diff --git a/frameworks/CSharp/akazawayun.pro/README.md b/frameworks/CSharp/akazawayun.pro/README.md new file mode 100644 index 00000000000..0388851ec6a --- /dev/null +++ b/frameworks/CSharp/akazawayun.pro/README.md @@ -0,0 +1 @@ +AkazawaYun.PRO(https://akazawayun.cn/#akzLearning#%E5%BF%AB%E9%80%9F%E5%85%A5%E9%97%A8) diff --git a/frameworks/CSharp/akazawayun.pro/akazawayun.pro.dockerfile b/frameworks/CSharp/akazawayun.pro/akazawayun.pro.dockerfile new file mode 100644 index 00000000000..f2549e6f8da --- /dev/null +++ b/frameworks/CSharp/akazawayun.pro/akazawayun.pro.dockerfile @@ -0,0 +1,13 @@ +# 此阶段用于生成项目 +FROM mcr.microsoft.com/dotnet/sdk:9.0 AS publish +WORKDIR /app +COPY src . +RUN dotnet publish -c Release -o /app/publish + +# 此阶段用于运行 +FROM mcr.microsoft.com/dotnet/sdk:9.0 AS runtime +WORKDIR /app +COPY --from=publish /app/publish . + +EXPOSE 2022 +ENTRYPOINT ["dotnet", "AkazawaYun.FrameworkBenchmarks.dll"] \ No newline at end of file diff --git a/frameworks/CSharp/akazawayun.pro/benchmark_config.json b/frameworks/CSharp/akazawayun.pro/benchmark_config.json new file mode 100644 index 00000000000..5bf15d28908 --- /dev/null +++ b/frameworks/CSharp/akazawayun.pro/benchmark_config.json @@ -0,0 +1,24 @@ +{ + "framework": "akazawayun.pro", + "tests": [ + { + "default": { + "plaintext_url": "/plaintext", + "json_url": "/json", + "port": 2022, + "approach": "Realistic", + "classification": "Platform", + "framework": "akazawayun.pro", + "webserver": "akazawayun.pro", + "platform": ".NET", + "language": "C#", + "flavor": "CoreCLR", + "os": "Linux", + "database_os": "Linux", + "orm": "Dapper", + "display_name": "akazawayun.pro", + "notes": "" + } + } + ] +} diff --git a/frameworks/CSharp/akazawayun.pro/src/AkazawaYun.FrameworkBenchmarks.csproj b/frameworks/CSharp/akazawayun.pro/src/AkazawaYun.FrameworkBenchmarks.csproj new file mode 100644 index 00000000000..1b1e1e64a69 --- /dev/null +++ b/frameworks/CSharp/akazawayun.pro/src/AkazawaYun.FrameworkBenchmarks.csproj @@ -0,0 +1,19 @@ + + + + Exe + net9.0 + enable + enable + + + + true + true + + + + + + + diff --git a/frameworks/CSharp/akazawayun.pro/src/Program.cs b/frameworks/CSharp/akazawayun.pro/src/Program.cs new file mode 100644 index 00000000000..b4abc8a6a09 --- /dev/null +++ b/frameworks/CSharp/akazawayun.pro/src/Program.cs @@ -0,0 +1,36 @@ +using AkazawaYun.PRO7; +using System.Text.Json.Serialization; + +namespace AkazawaYun.FrameworkBenchmarks; + +public class Program : IPostFunction +{ + static async Task Main() + { + akzJson.Config(null, Json.Default); + var server = await akzWebBuilder.Shared.Load().SetDefault().Build().Launch(); + akzLog.Default = akzLog.Output.None; + await Task.Delay(-1); + } + + + public static async ValueTask plaintext(HttpReq _) + { + return "Hello, World!"; + } + public static async ValueTask json(HttpReq _) + { + return HttpRes.HttpJson(new JsonResponse + { + Message = "Hello, World!" + }); + } +} + +public class JsonResponse +{ + public string? Message { get; set; } +} + +[JsonSerializable(typeof(JsonResponse))] +public partial class Json : JsonSerializerContext { } From 034a4fb73554a77c406f323551deec7db3fc99a1 Mon Sep 17 00:00:00 2001 From: AkazawaYun <408193813@qq.com> Date: Tue, 29 Jul 2025 04:55:09 +0800 Subject: [PATCH 02/50] modify config and code --- .../CSharp/akazawayun.pro/benchmark_config.json | 11 ++++++----- frameworks/CSharp/akazawayun.pro/src/Program.cs | 13 +++++++++---- 2 files changed, 15 insertions(+), 9 deletions(-) diff --git a/frameworks/CSharp/akazawayun.pro/benchmark_config.json b/frameworks/CSharp/akazawayun.pro/benchmark_config.json index 5bf15d28908..db3132c145c 100644 --- a/frameworks/CSharp/akazawayun.pro/benchmark_config.json +++ b/frameworks/CSharp/akazawayun.pro/benchmark_config.json @@ -3,20 +3,21 @@ "tests": [ { "default": { + "display_name": "akazawayun.pro", + "framework": "akazawayun.pro", + "webserver": "akazawayun.pro", "plaintext_url": "/plaintext", "json_url": "/json", "port": 2022, + "classification": "Micro", "approach": "Realistic", - "classification": "Platform", - "framework": "akazawayun.pro", - "webserver": "akazawayun.pro", "platform": ".NET", "language": "C#", "flavor": "CoreCLR", "os": "Linux", "database_os": "Linux", - "orm": "Dapper", - "display_name": "akazawayun.pro", + "database": "MySQL", + "orm": "Micro", "notes": "" } } diff --git a/frameworks/CSharp/akazawayun.pro/src/Program.cs b/frameworks/CSharp/akazawayun.pro/src/Program.cs index b4abc8a6a09..0b4b4634c24 100644 --- a/frameworks/CSharp/akazawayun.pro/src/Program.cs +++ b/frameworks/CSharp/akazawayun.pro/src/Program.cs @@ -1,4 +1,5 @@ using AkazawaYun.PRO7; +using AkazawaYun.PRO7.AkazawaYunWebInterceptor; using System.Text.Json.Serialization; namespace AkazawaYun.FrameworkBenchmarks; @@ -8,17 +9,21 @@ public class Program : IPostFunction static async Task Main() { akzJson.Config(null, Json.Default); - var server = await akzWebBuilder.Shared.Load().SetDefault().Build().Launch(); + var server = await akzWebBuilder.Shared.Load().SetDefault().Build() + .Config(itc => + { + itc.AddInterceptor(new akzWebInterceptorNotOnlyPost()); + }).Launch(); akzLog.Default = akzLog.Output.None; await Task.Delay(-1); } - public static async ValueTask plaintext(HttpReq _) + public static ValueTask plaintext(HttpReq _) { - return "Hello, World!"; + return HttpRes.HttpOK("Hello, World!"); } - public static async ValueTask json(HttpReq _) + public static ValueTask json(HttpReq _) { return HttpRes.HttpJson(new JsonResponse { From b81fdb51a7678cb3c45b4fdce07d23ca53cc8ec9 Mon Sep 17 00:00:00 2001 From: AkazawaYun <408193813@qq.com> Date: Tue, 29 Jul 2025 05:05:22 +0800 Subject: [PATCH 03/50] add content-type --- frameworks/CSharp/akazawayun.pro/src/Program.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frameworks/CSharp/akazawayun.pro/src/Program.cs b/frameworks/CSharp/akazawayun.pro/src/Program.cs index 0b4b4634c24..6a1fa57d2cc 100644 --- a/frameworks/CSharp/akazawayun.pro/src/Program.cs +++ b/frameworks/CSharp/akazawayun.pro/src/Program.cs @@ -21,7 +21,7 @@ static async Task Main() public static ValueTask plaintext(HttpReq _) { - return HttpRes.HttpOK("Hello, World!"); + return HttpRes.HttpOK("Hello, World!", ".txt"); } public static ValueTask json(HttpReq _) { From b9c5d85fd69d841d2c6ac8abd16df2e4a42ec3d1 Mon Sep 17 00:00:00 2001 From: AkazawaYun <408193813@qq.com> Date: Tue, 29 Jul 2025 05:17:01 +0800 Subject: [PATCH 04/50] update url --- frameworks/CSharp/akazawayun.pro/benchmark_config.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/frameworks/CSharp/akazawayun.pro/benchmark_config.json b/frameworks/CSharp/akazawayun.pro/benchmark_config.json index db3132c145c..74968041e6b 100644 --- a/frameworks/CSharp/akazawayun.pro/benchmark_config.json +++ b/frameworks/CSharp/akazawayun.pro/benchmark_config.json @@ -6,8 +6,8 @@ "display_name": "akazawayun.pro", "framework": "akazawayun.pro", "webserver": "akazawayun.pro", - "plaintext_url": "/plaintext", - "json_url": "/json", + "plaintext_url": "/post/plaintext", + "json_url": "/post/json", "port": 2022, "classification": "Micro", "approach": "Realistic", From e74efcd150920d3eccfd90c7a6b80c07c59801a4 Mon Sep 17 00:00:00 2001 From: AkazawaYun <408193813@qq.com> Date: Tue, 29 Jul 2025 05:29:05 +0800 Subject: [PATCH 05/50] update package version --- .../akazawayun.pro/src/AkazawaYun.FrameworkBenchmarks.csproj | 2 +- frameworks/CSharp/akazawayun.pro/src/Program.cs | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/frameworks/CSharp/akazawayun.pro/src/AkazawaYun.FrameworkBenchmarks.csproj b/frameworks/CSharp/akazawayun.pro/src/AkazawaYun.FrameworkBenchmarks.csproj index 1b1e1e64a69..caf04a7827b 100644 --- a/frameworks/CSharp/akazawayun.pro/src/AkazawaYun.FrameworkBenchmarks.csproj +++ b/frameworks/CSharp/akazawayun.pro/src/AkazawaYun.FrameworkBenchmarks.csproj @@ -13,7 +13,7 @@ - + diff --git a/frameworks/CSharp/akazawayun.pro/src/Program.cs b/frameworks/CSharp/akazawayun.pro/src/Program.cs index 6a1fa57d2cc..808424483f4 100644 --- a/frameworks/CSharp/akazawayun.pro/src/Program.cs +++ b/frameworks/CSharp/akazawayun.pro/src/Program.cs @@ -27,14 +27,14 @@ public static ValueTask json(HttpReq _) { return HttpRes.HttpJson(new JsonResponse { - Message = "Hello, World!" + message = "Hello, World!" }); } } public class JsonResponse { - public string? Message { get; set; } + public string? message { get; set; } } [JsonSerializable(typeof(JsonResponse))] From c34f85685cd2347f731375331859b8948acd3c91 Mon Sep 17 00:00:00 2001 From: AkazawaYun <408193813@qq.com> Date: Wed, 13 Aug 2025 02:56:19 +0800 Subject: [PATCH 06/50] =?UTF-8?q?add=203=20new=20tests:=20db=E3=80=81queri?= =?UTF-8?q?es=E3=80=81updates?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 1. add 3 new tests: db、queries、updates; 2. split code to multi files; --- .../akazawayun.pro/akazawayun.pro.dockerfile | 5 +- .../akazawayun.pro/benchmark_config.json | 49 ++++++----- .../src/AkazawaYun.FrameworkBenchmarks.csproj | 6 +- frameworks/CSharp/akazawayun.pro/src/Model.cs | 20 +++++ frameworks/CSharp/akazawayun.pro/src/Mysql.cs | 10 +++ .../CSharp/akazawayun.pro/src/Program.cs | 83 ++++++++++++++----- .../CSharp/akazawayun.pro/src/WorldService.cs | 33 ++++++++ 7 files changed, 159 insertions(+), 47 deletions(-) create mode 100644 frameworks/CSharp/akazawayun.pro/src/Model.cs create mode 100644 frameworks/CSharp/akazawayun.pro/src/Mysql.cs create mode 100644 frameworks/CSharp/akazawayun.pro/src/WorldService.cs diff --git a/frameworks/CSharp/akazawayun.pro/akazawayun.pro.dockerfile b/frameworks/CSharp/akazawayun.pro/akazawayun.pro.dockerfile index f2549e6f8da..517de01369b 100644 --- a/frameworks/CSharp/akazawayun.pro/akazawayun.pro.dockerfile +++ b/frameworks/CSharp/akazawayun.pro/akazawayun.pro.dockerfile @@ -1,13 +1,12 @@ -# 此阶段用于生成项目 +# 生成 FROM mcr.microsoft.com/dotnet/sdk:9.0 AS publish WORKDIR /app COPY src . RUN dotnet publish -c Release -o /app/publish -# 此阶段用于运行 FROM mcr.microsoft.com/dotnet/sdk:9.0 AS runtime WORKDIR /app COPY --from=publish /app/publish . EXPOSE 2022 -ENTRYPOINT ["dotnet", "AkazawaYun.FrameworkBenchmarks.dll"] \ No newline at end of file +ENTRYPOINT ["dotnet", "AkazawaYun.FrameworkBenchmarks.dll"] diff --git a/frameworks/CSharp/akazawayun.pro/benchmark_config.json b/frameworks/CSharp/akazawayun.pro/benchmark_config.json index 74968041e6b..d03b12ca608 100644 --- a/frameworks/CSharp/akazawayun.pro/benchmark_config.json +++ b/frameworks/CSharp/akazawayun.pro/benchmark_config.json @@ -1,25 +1,28 @@ { - "framework": "akazawayun.pro", - "tests": [ - { - "default": { - "display_name": "akazawayun.pro", - "framework": "akazawayun.pro", - "webserver": "akazawayun.pro", - "plaintext_url": "/post/plaintext", - "json_url": "/post/json", - "port": 2022, - "classification": "Micro", - "approach": "Realistic", - "platform": ".NET", - "language": "C#", - "flavor": "CoreCLR", - "os": "Linux", - "database_os": "Linux", - "database": "MySQL", - "orm": "Micro", - "notes": "" - } - } - ] + "framework": "akazawayun.pro", + "tests": [ + { + "default": { + "display_name": "akazawayun.pro", + "framework": "akazawayun.pro", + "webserver": "akazawayun.pro", + "plaintext_url": "/post/plaintext", + "json_url": "/post/json", + "db_url": "/post/db", + "query_url": "/post/queries?queries=", + "update_url": "/post/updates?queries=", + "port": 2022, + "classification": "Micro", + "approach": "Realistic", + "platform": ".NET", + "language": "C#", + "flavor": "CoreCLR", + "os": "Linux", + "database_os": "Linux", + "database": "MySQL", + "orm": "Micro", + "notes": "" + } + } + ] } diff --git a/frameworks/CSharp/akazawayun.pro/src/AkazawaYun.FrameworkBenchmarks.csproj b/frameworks/CSharp/akazawayun.pro/src/AkazawaYun.FrameworkBenchmarks.csproj index caf04a7827b..65752ace3ae 100644 --- a/frameworks/CSharp/akazawayun.pro/src/AkazawaYun.FrameworkBenchmarks.csproj +++ b/frameworks/CSharp/akazawayun.pro/src/AkazawaYun.FrameworkBenchmarks.csproj @@ -5,15 +5,17 @@ net9.0 enable enable + true - + true true - + + diff --git a/frameworks/CSharp/akazawayun.pro/src/Model.cs b/frameworks/CSharp/akazawayun.pro/src/Model.cs new file mode 100644 index 00000000000..3fdc588ef5c --- /dev/null +++ b/frameworks/CSharp/akazawayun.pro/src/Model.cs @@ -0,0 +1,20 @@ +using AkazawaYun.AOT; +using System.Text.Json.Serialization; + +namespace AkazawaYun.FrameworkBenchmarks; + + +[JsonSerializable(typeof(JsonResponse))] +[JsonSerializable(typeof(World))] +public partial class Json : JsonSerializerContext { } + + +public class JsonResponse +{ + public string? message { get; set; } +} +public class World : IAotModel +{ + public int id { get; set; } + public int randomNumber { get; set; } +} diff --git a/frameworks/CSharp/akazawayun.pro/src/Mysql.cs b/frameworks/CSharp/akazawayun.pro/src/Mysql.cs new file mode 100644 index 00000000000..ca86a8e4622 --- /dev/null +++ b/frameworks/CSharp/akazawayun.pro/src/Mysql.cs @@ -0,0 +1,10 @@ +using AkazawaYun.PRO7; +using MySql.Data.MySqlClient; +using System.Data.Common; + +namespace AkazawaYun.FrameworkBenchmarks; + +internal class Mysql : akzDbFactory +{ + protected override DbConnection NewConnection() => new MySqlConnection(ConString); +} diff --git a/frameworks/CSharp/akazawayun.pro/src/Program.cs b/frameworks/CSharp/akazawayun.pro/src/Program.cs index 808424483f4..1a1ae87a7e4 100644 --- a/frameworks/CSharp/akazawayun.pro/src/Program.cs +++ b/frameworks/CSharp/akazawayun.pro/src/Program.cs @@ -1,41 +1,86 @@ -using AkazawaYun.PRO7; +using AkazawaYun.AOT; +using AkazawaYun.PRO7; +using AkazawaYun.PRO7.AkazawaYunWebFunctionAOP; using AkazawaYun.PRO7.AkazawaYunWebInterceptor; +using System.Diagnostics.CodeAnalysis; +using System.Runtime.Intrinsics.Arm; using System.Text.Json.Serialization; +using System.Threading.Tasks; namespace AkazawaYun.FrameworkBenchmarks; -public class Program : IPostFunction +internal class Program : IPostFunctionWrapper { - static async Task Main() + static readonly akzWebBuilder builder; + static readonly akzDbFactory mysql; + + + static Program() { akzJson.Config(null, Json.Default); - var server = await akzWebBuilder.Shared.Load().SetDefault().Build() + builder = akzWebBuilder.Shared.SetDefault() + .Build() .Config(itc => { itc.AddInterceptor(new akzWebInterceptorNotOnlyPost()); - }).Launch(); + }); + mysql = new akzDbBuilderII() + .SetServer("tfb-database") + .SetDatabase("hello_world") + .SetUser("benchmarkdbuser") + .SetPwd("benchmarkdbpass") + .SetOtherset("Maximum Pool Size=1024;SslMode=None;ConnectionReset=false;ConnectionIdlePingTime=900;ConnectionIdleTimeout=0;AutoEnlist=false;DefaultCommandTimeout=0;ConnectionTimeout=0;IgnorePrepare=false;") + .Build(); + } + static async Task Main() + { + await builder.Launch(); akzLog.Default = akzLog.Output.None; await Task.Delay(-1); } - public static ValueTask plaintext(HttpReq _) + + public static HttpRes plaintext() => HttpRes.HttpOK("Hello, World!", ".txt"); + public static JsonResponse json() => new() + { + message = "Hello, World!" + }; + [WebFunctionAopTry] + public static async Task db() { - return HttpRes.HttpOK("Hello, World!", ".txt"); + await using IDb con = await mysql.Connect(); + World obj = await WorldService.GetRandomWorld(con); + return obj; } - public static ValueTask json(HttpReq _) + [WebFunctionAopTry] + public static async Task queries(string queries) { - return HttpRes.HttpJson(new JsonResponse - { - message = "Hello, World!" - }); + if (!int.TryParse(queries, out int count)) + count = 1; + count = Math.Clamp(count, 1, 500); + + await using IDb con = await mysql.Connect(); + var lst = await WorldService.GetWorlds(con, count); + return lst; } -} + [WebFunctionAopTry] + public static async Task updates(string queries) + { + if (!int.TryParse(queries, out int count)) + count = 1; + count = Math.Clamp(count, 1, 500); -public class JsonResponse -{ - public string? message { get; set; } -} + await using IDb con = await mysql.Connect(); + var lst = await WorldService.GetWorlds(con, count); + + foreach (var item in lst) + item.randomNumber = Random.Shared.Next(1, 10001); + + await WorldService.SaveWorlds(con, lst); -[JsonSerializable(typeof(JsonResponse))] -public partial class Json : JsonSerializerContext { } + return lst; + } + + +} diff --git a/frameworks/CSharp/akazawayun.pro/src/WorldService.cs b/frameworks/CSharp/akazawayun.pro/src/WorldService.cs new file mode 100644 index 00000000000..b94afce47f0 --- /dev/null +++ b/frameworks/CSharp/akazawayun.pro/src/WorldService.cs @@ -0,0 +1,33 @@ +using AkazawaYun.PRO7; + +namespace AkazawaYun.FrameworkBenchmarks; + +internal static class WorldService +{ + public static async Task GetRandomWorld(IDb con, Dictionary? shared = null) + { + string sql = "SELECT id, randomNumber FROM world WHERE id = @id"; + int id = Random.Shared.Next(1, 10001); + shared ??= new DpSingleBuilder().Build(); + shared["id"] = id; + + World? obj = await con.Find(sql, shared).ToWorld(); + return obj!; + } + public static async Task GetWorlds(IDb con, int count) + { + World[] lst = new World[count]; + var dp = new DpSingleBuilder().Build(); + for (int i = 0; i < count; i++) + { + World obj = await GetRandomWorld(con, dp); + lst[i] = obj; + } + return lst; + } + public static async Task SaveWorlds(IDb con, World[] lst) + { + string sql = "UPDATE world SET randomNumber=@randomNumber WHERE id=@id ;"; + await con.Execute(sql, lst.ToDp()); + } +} From 8ffd6e1674e21a228254757e495abd3faa11a4c4 Mon Sep 17 00:00:00 2001 From: AkazawaYun <408193813@qq.com> Date: Wed, 13 Aug 2025 02:56:42 +0800 Subject: [PATCH 07/50] - --- frameworks/CSharp/akazawayun.pro/akazawayun.pro.dockerfile | 1 + 1 file changed, 1 insertion(+) diff --git a/frameworks/CSharp/akazawayun.pro/akazawayun.pro.dockerfile b/frameworks/CSharp/akazawayun.pro/akazawayun.pro.dockerfile index 517de01369b..268a6df7969 100644 --- a/frameworks/CSharp/akazawayun.pro/akazawayun.pro.dockerfile +++ b/frameworks/CSharp/akazawayun.pro/akazawayun.pro.dockerfile @@ -4,6 +4,7 @@ WORKDIR /app COPY src . RUN dotnet publish -c Release -o /app/publish +# 运行 FROM mcr.microsoft.com/dotnet/sdk:9.0 AS runtime WORKDIR /app COPY --from=publish /app/publish . From e1d5577a919f1ae57e51e85bbc0c9479ed5e73b2 Mon Sep 17 00:00:00 2001 From: AkazawaYun <408193813@qq.com> Date: Thu, 14 Aug 2025 11:56:49 +0800 Subject: [PATCH 08/50] use generated sql instead const string. --- .../src/AkazawaYun.FrameworkBenchmarks.csproj | 1 + frameworks/CSharp/akazawayun.pro/src/Model.cs | 13 ++--- frameworks/CSharp/akazawayun.pro/src/Mysql.cs | 2 +- .../CSharp/akazawayun.pro/src/Program.cs | 52 ++++++++++--------- .../CSharp/akazawayun.pro/src/WorldService.cs | 32 ++++++++---- 5 files changed, 59 insertions(+), 41 deletions(-) diff --git a/frameworks/CSharp/akazawayun.pro/src/AkazawaYun.FrameworkBenchmarks.csproj b/frameworks/CSharp/akazawayun.pro/src/AkazawaYun.FrameworkBenchmarks.csproj index 65752ace3ae..422a1ec22fc 100644 --- a/frameworks/CSharp/akazawayun.pro/src/AkazawaYun.FrameworkBenchmarks.csproj +++ b/frameworks/CSharp/akazawayun.pro/src/AkazawaYun.FrameworkBenchmarks.csproj @@ -6,6 +6,7 @@ enable enable true + false diff --git a/frameworks/CSharp/akazawayun.pro/src/Model.cs b/frameworks/CSharp/akazawayun.pro/src/Model.cs index 3fdc588ef5c..2fdf2c6d1f3 100644 --- a/frameworks/CSharp/akazawayun.pro/src/Model.cs +++ b/frameworks/CSharp/akazawayun.pro/src/Model.cs @@ -1,19 +1,20 @@ -using AkazawaYun.AOT; +#pragma warning disable IDE1006,CS8981 +using AkazawaYun.AOT; using System.Text.Json.Serialization; namespace AkazawaYun.FrameworkBenchmarks; -[JsonSerializable(typeof(JsonResponse))] -[JsonSerializable(typeof(World))] -public partial class Json : JsonSerializerContext { } +[JsonSerializable(typeof(JsonModel))] +[JsonSerializable(typeof(world[]))] +public partial class AotJsonContext : JsonSerializerContext { } -public class JsonResponse +public class JsonModel { public string? message { get; set; } } -public class World : IAotModel +public class world : IAotModel { public int id { get; set; } public int randomNumber { get; set; } diff --git a/frameworks/CSharp/akazawayun.pro/src/Mysql.cs b/frameworks/CSharp/akazawayun.pro/src/Mysql.cs index ca86a8e4622..8c056b15baa 100644 --- a/frameworks/CSharp/akazawayun.pro/src/Mysql.cs +++ b/frameworks/CSharp/akazawayun.pro/src/Mysql.cs @@ -4,7 +4,7 @@ namespace AkazawaYun.FrameworkBenchmarks; -internal class Mysql : akzDbFactory +class Mysql : akzDbFactory { protected override DbConnection NewConnection() => new MySqlConnection(ConString); } diff --git a/frameworks/CSharp/akazawayun.pro/src/Program.cs b/frameworks/CSharp/akazawayun.pro/src/Program.cs index 1a1ae87a7e4..dc4c3c7c2e1 100644 --- a/frameworks/CSharp/akazawayun.pro/src/Program.cs +++ b/frameworks/CSharp/akazawayun.pro/src/Program.cs @@ -1,23 +1,23 @@ -using AkazawaYun.AOT; +#pragma warning disable IDE1006 + +using AkazawaYun.AOT; using AkazawaYun.PRO7; using AkazawaYun.PRO7.AkazawaYunWebFunctionAOP; using AkazawaYun.PRO7.AkazawaYunWebInterceptor; using System.Diagnostics.CodeAnalysis; -using System.Runtime.Intrinsics.Arm; -using System.Text.Json.Serialization; -using System.Threading.Tasks; namespace AkazawaYun.FrameworkBenchmarks; -internal class Program : IPostFunctionWrapper +class Program : IPostFunctionWrapper { static readonly akzWebBuilder builder; static readonly akzDbFactory mysql; + [UnconditionalSuppressMessage("Trimming", "IL2026")] static Program() { - akzJson.Config(null, Json.Default); + akzJson.Config(null, AotJsonContext.Default); builder = akzWebBuilder.Shared.SetDefault() .Build() .Config(itc => @@ -26,10 +26,10 @@ static Program() }); mysql = new akzDbBuilderII() .SetServer("tfb-database") - .SetDatabase("hello_world") .SetUser("benchmarkdbuser") .SetPwd("benchmarkdbpass") - .SetOtherset("Maximum Pool Size=1024;SslMode=None;ConnectionReset=false;ConnectionIdlePingTime=900;ConnectionIdleTimeout=0;AutoEnlist=false;DefaultCommandTimeout=0;ConnectionTimeout=0;IgnorePrepare=false;") + .SetDatabase("hello_world") + .SetOtherset("SslMode=None;") .Build(); } static async Task Main() @@ -40,42 +40,38 @@ static async Task Main() } - public static HttpRes plaintext() => HttpRes.HttpOK("Hello, World!", ".txt"); - public static JsonResponse json() => new() + public static JsonModel json() => new() { message = "Hello, World!" }; + [WebFunctionAopTry] - public static async Task db() + public static async Task db() { await using IDb con = await mysql.Connect(); - World obj = await WorldService.GetRandomWorld(con); + world obj = await WorldService.GetRandomWorld(con); return obj; } [WebFunctionAopTry] - public static async Task queries(string queries) + public static async Task queries(string queries) { - if (!int.TryParse(queries, out int count)) - count = 1; - count = Math.Clamp(count, 1, 500); + int count = ParseCount(queries); await using IDb con = await mysql.Connect(); - var lst = await WorldService.GetWorlds(con, count); + world[] lst = await WorldService.GetWorlds(con, count); return lst; } [WebFunctionAopTry] - public static async Task updates(string queries) + public static async Task updates(string queries) { - if (!int.TryParse(queries, out int count)) - count = 1; - count = Math.Clamp(count, 1, 500); + int count = ParseCount(queries); await using IDb con = await mysql.Connect(); - var lst = await WorldService.GetWorlds(con, count); + world[] lst = await WorldService.GetWorlds(con, count); - foreach (var item in lst) - item.randomNumber = Random.Shared.Next(1, 10001); + foreach (world obj in lst) + obj.randomNumber = Random.Shared.Next(1, 10001); await WorldService.SaveWorlds(con, lst); @@ -83,4 +79,12 @@ public static async Task updates(string queries) } + static int ParseCount(string queries) + { + if (!int.TryParse(queries, out int count)) + count = 1; + count = Math.Clamp(count, 1, 500); + return count; + } + } diff --git a/frameworks/CSharp/akazawayun.pro/src/WorldService.cs b/frameworks/CSharp/akazawayun.pro/src/WorldService.cs index b94afce47f0..1ef7f17e8a4 100644 --- a/frameworks/CSharp/akazawayun.pro/src/WorldService.cs +++ b/frameworks/CSharp/akazawayun.pro/src/WorldService.cs @@ -2,32 +2,44 @@ namespace AkazawaYun.FrameworkBenchmarks; -internal static class WorldService +class WorldService { - public static async Task GetRandomWorld(IDb con, Dictionary? shared = null) + static readonly int @id; + // SELECT id, randomNumber FROM world WHERE id=@id ; + public static readonly string SqlSelect = akzSqlinq.Query().Select(m => new + { + m.id, + m.randomNumber, + }).Where(m => m.id == @id).Build(); + // UPDATE world SET randomNumber=@randomNumber WHERE id=@id ; + public static readonly string SqlUpdate = akzSqlinq.Update().Set(m => new() + { + randomNumber = m.randomNumber, + }).Where(m => m.id == @id).Build(); + + + public static async Task GetRandomWorld(IDb con, IDictionary? shared = null) { - string sql = "SELECT id, randomNumber FROM world WHERE id = @id"; int id = Random.Shared.Next(1, 10001); shared ??= new DpSingleBuilder().Build(); shared["id"] = id; - World? obj = await con.Find(sql, shared).ToWorld(); + world? obj = await con.Find(SqlSelect, shared).Toworld(); return obj!; } - public static async Task GetWorlds(IDb con, int count) + public static async Task GetWorlds(IDb con, int count) { - World[] lst = new World[count]; + world[] lst = new world[count]; var dp = new DpSingleBuilder().Build(); for (int i = 0; i < count; i++) { - World obj = await GetRandomWorld(con, dp); + world obj = await GetRandomWorld(con, dp); lst[i] = obj; } return lst; } - public static async Task SaveWorlds(IDb con, World[] lst) + public static async Task SaveWorlds(IDb con, world[] lst) { - string sql = "UPDATE world SET randomNumber=@randomNumber WHERE id=@id ;"; - await con.Execute(sql, lst.ToDp()); + await con.Execute(SqlUpdate, lst.ToDp()); } } From 003908b66306c32ba72e1374c22c911726a04b61 Mon Sep 17 00:00:00 2001 From: AkazawaYun <408193813@qq.com> Date: Sat, 23 Aug 2025 12:16:16 +0800 Subject: [PATCH 09/50] update version --- .../src/AkazawaYun.FrameworkBenchmarks.csproj | 2 +- frameworks/CSharp/akazawayun.pro/src/Program.cs | 12 ++++++------ 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/frameworks/CSharp/akazawayun.pro/src/AkazawaYun.FrameworkBenchmarks.csproj b/frameworks/CSharp/akazawayun.pro/src/AkazawaYun.FrameworkBenchmarks.csproj index 422a1ec22fc..fe030721641 100644 --- a/frameworks/CSharp/akazawayun.pro/src/AkazawaYun.FrameworkBenchmarks.csproj +++ b/frameworks/CSharp/akazawayun.pro/src/AkazawaYun.FrameworkBenchmarks.csproj @@ -15,7 +15,7 @@ - + diff --git a/frameworks/CSharp/akazawayun.pro/src/Program.cs b/frameworks/CSharp/akazawayun.pro/src/Program.cs index dc4c3c7c2e1..0bd4165fb34 100644 --- a/frameworks/CSharp/akazawayun.pro/src/Program.cs +++ b/frameworks/CSharp/akazawayun.pro/src/Program.cs @@ -1,4 +1,4 @@ -#pragma warning disable IDE1006 +#pragma warning disable IDE1006,IL2026 using AkazawaYun.AOT; using AkazawaYun.PRO7; @@ -14,7 +14,6 @@ class Program : IPostFunctionWrapper static readonly akzDbFactory mysql; - [UnconditionalSuppressMessage("Trimming", "IL2026")] static Program() { akzJson.Config(null, AotJsonContext.Default); @@ -46,14 +45,14 @@ static async Task Main() message = "Hello, World!" }; - [WebFunctionAopTry] + //[WebFunctionAopTry] public static async Task db() { await using IDb con = await mysql.Connect(); world obj = await WorldService.GetRandomWorld(con); return obj; } - [WebFunctionAopTry] + //[WebFunctionAopTry] public static async Task queries(string queries) { int count = ParseCount(queries); @@ -62,7 +61,7 @@ public static async Task queries(string queries) world[] lst = await WorldService.GetWorlds(con, count); return lst; } - [WebFunctionAopTry] + //[WebFunctionAopTry] public static async Task updates(string queries) { int count = ParseCount(queries); @@ -82,7 +81,8 @@ public static async Task updates(string queries) static int ParseCount(string queries) { if (!int.TryParse(queries, out int count)) - count = 1; + return 1; + count = Math.Clamp(count, 1, 500); return count; } From eb88f324a8a52cfe9e7799e133fe3595efc91869 Mon Sep 17 00:00:00 2001 From: AkazawaYun <408193813@qq.com> Date: Sun, 24 Aug 2025 02:12:26 +0800 Subject: [PATCH 10/50] fix bug of db query --- .../src/AkazawaYun.FrameworkBenchmarks.csproj | 2 +- frameworks/CSharp/akazawayun.pro/src/Program.cs | 7 +++++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/frameworks/CSharp/akazawayun.pro/src/AkazawaYun.FrameworkBenchmarks.csproj b/frameworks/CSharp/akazawayun.pro/src/AkazawaYun.FrameworkBenchmarks.csproj index fe030721641..d90be15ce78 100644 --- a/frameworks/CSharp/akazawayun.pro/src/AkazawaYun.FrameworkBenchmarks.csproj +++ b/frameworks/CSharp/akazawayun.pro/src/AkazawaYun.FrameworkBenchmarks.csproj @@ -15,7 +15,7 @@ - + diff --git a/frameworks/CSharp/akazawayun.pro/src/Program.cs b/frameworks/CSharp/akazawayun.pro/src/Program.cs index 0bd4165fb34..183cc59636b 100644 --- a/frameworks/CSharp/akazawayun.pro/src/Program.cs +++ b/frameworks/CSharp/akazawayun.pro/src/Program.cs @@ -21,14 +21,17 @@ static Program() .Build() .Config(itc => { + itc.ClearInterceptor(); itc.AddInterceptor(new akzWebInterceptorNotOnlyPost()); }); mysql = new akzDbBuilderII() - .SetServer("tfb-database") + .SetServer("tfb-database:3306") + //.SetServer("localhost:3306") .SetUser("benchmarkdbuser") .SetPwd("benchmarkdbpass") .SetDatabase("hello_world") - .SetOtherset("SslMode=None;") + .SetCharset() + .SetOtherset() .Build(); } static async Task Main() From 9f8f66c56638607063caf5ade6fd0419dbbb7c2e Mon Sep 17 00:00:00 2001 From: AkazawaYun <408193813@qq.com> Date: Sat, 18 Oct 2025 23:04:51 +0800 Subject: [PATCH 11/50] set port to 8080 --- .../akazawayun.pro/benchmark_config.json | 12 ++++++------ .../CSharp/akazawayun.pro/src/Program.cs | 18 ++++++++++++++---- 2 files changed, 20 insertions(+), 10 deletions(-) diff --git a/frameworks/CSharp/akazawayun.pro/benchmark_config.json b/frameworks/CSharp/akazawayun.pro/benchmark_config.json index d03b12ca608..8f067f8fee6 100644 --- a/frameworks/CSharp/akazawayun.pro/benchmark_config.json +++ b/frameworks/CSharp/akazawayun.pro/benchmark_config.json @@ -6,12 +6,12 @@ "display_name": "akazawayun.pro", "framework": "akazawayun.pro", "webserver": "akazawayun.pro", - "plaintext_url": "/post/plaintext", - "json_url": "/post/json", - "db_url": "/post/db", - "query_url": "/post/queries?queries=", - "update_url": "/post/updates?queries=", - "port": 2022, + "plaintext_url": "/plaintext", + "json_url": "/json", + "db_url": "/db", + "query_url": "/queries?queries=", + "update_url": "/updates?queries=", + "port": 8080, "classification": "Micro", "approach": "Realistic", "platform": ".NET", diff --git a/frameworks/CSharp/akazawayun.pro/src/Program.cs b/frameworks/CSharp/akazawayun.pro/src/Program.cs index 077fc489ddb..6deaa438d33 100644 --- a/frameworks/CSharp/akazawayun.pro/src/Program.cs +++ b/frameworks/CSharp/akazawayun.pro/src/Program.cs @@ -17,16 +17,16 @@ class Program : IPostFunctionWrapper static Program() { akzJson.Config(null, AotJsonContext.Default); - builder = akzWebBuilder.Shared.SetDefault() + builder = akzWebBuilder.Shared.SetPort(8080).SetDefault() .Build() .Config(itc => { itc.ClearInterceptor(); - itc.AddInterceptor(new akzWebInterceptorNotOnlyPost()); + itc.AddInterceptor(new akzWebInterceptorAsPost()); }); mysql = new akzDbBuilderII() - .SetServer("tfb-database:3306") - //.SetServer("localhost:3306") + .SetServer("tfb-database") + //.SetServer("localhost") .SetUser("benchmarkdbuser") .SetPwd("benchmarkdbpass") .SetDatabase("hello_world") @@ -91,3 +91,13 @@ static int ParseCount(string queries) } } + + +public class akzWebInterceptorAsPost : WebInterceptor +{ + public override ValueTask Intercept(IHttpContext http) + { + http.Method = "POST"; + return InterceptorHttpRes.No(); + } +} \ No newline at end of file From be69ad1bfc4699a6ce6c914d4393295a9428e839 Mon Sep 17 00:00:00 2001 From: AkazawaYun <408193813@qq.com> Date: Fri, 24 Oct 2025 04:27:10 +0800 Subject: [PATCH 12/50] =?UTF-8?q?=E5=8D=87=E7=BA=A7=20akazawayun.pro=20?= =?UTF-8?q?=E6=A1=86=E6=9E=B6=E7=89=88=E6=9C=AC=E5=88=B0=2014?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../akazawayun.pro/src/AkazawaYun.FrameworkBenchmarks.csproj | 4 ++-- frameworks/CSharp/akazawayun.pro/src/Program.cs | 5 +---- 2 files changed, 3 insertions(+), 6 deletions(-) diff --git a/frameworks/CSharp/akazawayun.pro/src/AkazawaYun.FrameworkBenchmarks.csproj b/frameworks/CSharp/akazawayun.pro/src/AkazawaYun.FrameworkBenchmarks.csproj index c2c063469d0..74ff38b5e31 100644 --- a/frameworks/CSharp/akazawayun.pro/src/AkazawaYun.FrameworkBenchmarks.csproj +++ b/frameworks/CSharp/akazawayun.pro/src/AkazawaYun.FrameworkBenchmarks.csproj @@ -15,8 +15,8 @@ - - + + diff --git a/frameworks/CSharp/akazawayun.pro/src/Program.cs b/frameworks/CSharp/akazawayun.pro/src/Program.cs index 6deaa438d33..509cdd952f3 100644 --- a/frameworks/CSharp/akazawayun.pro/src/Program.cs +++ b/frameworks/CSharp/akazawayun.pro/src/Program.cs @@ -2,9 +2,6 @@ using AkazawaYun.AOT; using AkazawaYun.PRO7; -using AkazawaYun.PRO7.AkazawaYunWebFunctionAOP; -using AkazawaYun.PRO7.AkazawaYunWebInterceptor; -using System.Diagnostics.CodeAnalysis; namespace AkazawaYun.FrameworkBenchmarks; @@ -17,7 +14,7 @@ class Program : IPostFunctionWrapper static Program() { akzJson.Config(null, AotJsonContext.Default); - builder = akzWebBuilder.Shared.SetPort(8080).SetDefault() + builder = akzWebBuilder.Shared.SetPort(8080) .Build() .Config(itc => { From d6e7352c1e2ce11f209b67dce0e6979b03f3046b Mon Sep 17 00:00:00 2001 From: AkazawaYun <408193813@qq.com> Date: Fri, 24 Oct 2025 05:01:05 +0800 Subject: [PATCH 13/50] i forget to update the port change... --- frameworks/CSharp/akazawayun.pro/akazawayun.pro.dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frameworks/CSharp/akazawayun.pro/akazawayun.pro.dockerfile b/frameworks/CSharp/akazawayun.pro/akazawayun.pro.dockerfile index 44d69f1c8fa..7ae1060903d 100644 --- a/frameworks/CSharp/akazawayun.pro/akazawayun.pro.dockerfile +++ b/frameworks/CSharp/akazawayun.pro/akazawayun.pro.dockerfile @@ -9,5 +9,5 @@ FROM mcr.microsoft.com/dotnet/sdk:9.0 AS runtime WORKDIR /app COPY --from=publish /app/publish . -EXPOSE 2022 +EXPOSE 8080 ENTRYPOINT ["dotnet", "AkazawaYun.FrameworkBenchmarks.dll"] From fcf3f289875d7150820201d87d32baf4924c847b Mon Sep 17 00:00:00 2001 From: AkazawaYun <408193813@qq.com> Date: Fri, 24 Oct 2025 06:02:40 +0800 Subject: [PATCH 14/50] test self whether work fine.. --- frameworks/CSharp/akazawayun.pro/src/Program.cs | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/frameworks/CSharp/akazawayun.pro/src/Program.cs b/frameworks/CSharp/akazawayun.pro/src/Program.cs index 0f4eb0a5917..a2b11618e50 100644 --- a/frameworks/CSharp/akazawayun.pro/src/Program.cs +++ b/frameworks/CSharp/akazawayun.pro/src/Program.cs @@ -34,6 +34,15 @@ static Program() static async Task Main() { await builder.Launch(); + + akzLog.Inf("[API SELF-TEST]"); + string url = "http://localhost:8080/plaintext"; + akzLog.Inf(" REQ URL :" + url); + string res = await akzHttpClient.Shared.Get(url).FetchString(); + akzLog.Inf(" RES LEN :" + res.Length); + akzLog.Inf(" RES BODY:" + res); + akzLog.Inf("[OK, I WORK FINE]"); + akzLog.Default = akzLog.Output.None; await Task.Delay(-1); } From 4e818de7fedc46420e840ccef138052aa68822c3 Mon Sep 17 00:00:00 2001 From: AkazawaYun <408193813@qq.com> Date: Sat, 25 Oct 2025 07:43:42 +0800 Subject: [PATCH 15/50] update nuget version --- .../akazawayun.pro/src/AkazawaYun.FrameworkBenchmarks.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frameworks/CSharp/akazawayun.pro/src/AkazawaYun.FrameworkBenchmarks.csproj b/frameworks/CSharp/akazawayun.pro/src/AkazawaYun.FrameworkBenchmarks.csproj index 74ff38b5e31..314e4b31339 100644 --- a/frameworks/CSharp/akazawayun.pro/src/AkazawaYun.FrameworkBenchmarks.csproj +++ b/frameworks/CSharp/akazawayun.pro/src/AkazawaYun.FrameworkBenchmarks.csproj @@ -15,7 +15,7 @@ - + From 97600a039084cdab39e6201588bac36f17585a3e Mon Sep 17 00:00:00 2001 From: AkazawaYun <408193813@qq.com> Date: Sat, 25 Oct 2025 09:53:17 +0800 Subject: [PATCH 16/50] why pr failed... --- .gitignore | 1 + .../AkazawaYun.FrameworkBenchmarks.sln | 25 +++++++++++++++++++ .../akazawayun.pro/akazawayun.pro.dockerfile | 2 +- .../akazawayun.pro/benchmark_config.json | 2 +- .../src/AkazawaYun.FrameworkBenchmarks.csproj | 2 ++ .../CSharp/akazawayun.pro/src/Program.cs | 6 ++--- .../TouchSocketHttp/TouchSocketHttp.csproj | 4 +-- 7 files changed, 35 insertions(+), 7 deletions(-) create mode 100644 frameworks/CSharp/akazawayun.pro/AkazawaYun.FrameworkBenchmarks.sln diff --git a/.gitignore b/.gitignore index bd7318e44d9..2f4e02babd6 100644 --- a/.gitignore +++ b/.gitignore @@ -69,3 +69,4 @@ benchmark.cfg # python .venv/ +frameworks/CSharp/akazawayun.pro/Dockerfile diff --git a/frameworks/CSharp/akazawayun.pro/AkazawaYun.FrameworkBenchmarks.sln b/frameworks/CSharp/akazawayun.pro/AkazawaYun.FrameworkBenchmarks.sln new file mode 100644 index 00000000000..e2c50c4d4fd --- /dev/null +++ b/frameworks/CSharp/akazawayun.pro/AkazawaYun.FrameworkBenchmarks.sln @@ -0,0 +1,25 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 17 +VisualStudioVersion = 17.14.36310.24 d17.14 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AkazawaYun.FrameworkBenchmarks", "src/AkazawaYun.FrameworkBenchmarks.csproj", "{BB5587FE-E4A0-851D-6025-F5FF0EC54525}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {BB5587FE-E4A0-851D-6025-F5FF0EC54525}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {BB5587FE-E4A0-851D-6025-F5FF0EC54525}.Debug|Any CPU.Build.0 = Debug|Any CPU + {BB5587FE-E4A0-851D-6025-F5FF0EC54525}.Release|Any CPU.ActiveCfg = Release|Any CPU + {BB5587FE-E4A0-851D-6025-F5FF0EC54525}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {81EA49A3-BB25-4EC5-B861-02520931CF63} + EndGlobalSection +EndGlobal diff --git a/frameworks/CSharp/akazawayun.pro/akazawayun.pro.dockerfile b/frameworks/CSharp/akazawayun.pro/akazawayun.pro.dockerfile index 7ae1060903d..44d69f1c8fa 100644 --- a/frameworks/CSharp/akazawayun.pro/akazawayun.pro.dockerfile +++ b/frameworks/CSharp/akazawayun.pro/akazawayun.pro.dockerfile @@ -9,5 +9,5 @@ FROM mcr.microsoft.com/dotnet/sdk:9.0 AS runtime WORKDIR /app COPY --from=publish /app/publish . -EXPOSE 8080 +EXPOSE 2022 ENTRYPOINT ["dotnet", "AkazawaYun.FrameworkBenchmarks.dll"] diff --git a/frameworks/CSharp/akazawayun.pro/benchmark_config.json b/frameworks/CSharp/akazawayun.pro/benchmark_config.json index 8f067f8fee6..00ccc11eceb 100644 --- a/frameworks/CSharp/akazawayun.pro/benchmark_config.json +++ b/frameworks/CSharp/akazawayun.pro/benchmark_config.json @@ -11,7 +11,7 @@ "db_url": "/db", "query_url": "/queries?queries=", "update_url": "/updates?queries=", - "port": 8080, + "port": 2022, "classification": "Micro", "approach": "Realistic", "platform": ".NET", diff --git a/frameworks/CSharp/akazawayun.pro/src/AkazawaYun.FrameworkBenchmarks.csproj b/frameworks/CSharp/akazawayun.pro/src/AkazawaYun.FrameworkBenchmarks.csproj index 314e4b31339..0d73f546c03 100644 --- a/frameworks/CSharp/akazawayun.pro/src/AkazawaYun.FrameworkBenchmarks.csproj +++ b/frameworks/CSharp/akazawayun.pro/src/AkazawaYun.FrameworkBenchmarks.csproj @@ -12,6 +12,8 @@ true true + Linux + ..\..\..\..\..\..\AkazawaYun.FrameworkBenchmarks diff --git a/frameworks/CSharp/akazawayun.pro/src/Program.cs b/frameworks/CSharp/akazawayun.pro/src/Program.cs index a2b11618e50..07fd617ba27 100644 --- a/frameworks/CSharp/akazawayun.pro/src/Program.cs +++ b/frameworks/CSharp/akazawayun.pro/src/Program.cs @@ -9,12 +9,12 @@ class Program : IPostFunctionWrapper { static readonly akzWebBuilder builder; static readonly akzDbFactory mysql; - + const int port = 2022; static Program() { akzJson.Config(null, AotJsonContext.Default); - builder = akzWebBuilder.Shared.SetPort(8080) + builder = akzWebBuilder.Shared.SetPort(port) .Build() .Config(itc => { @@ -36,7 +36,7 @@ static async Task Main() await builder.Launch(); akzLog.Inf("[API SELF-TEST]"); - string url = "http://localhost:8080/plaintext"; + string url = $"http://localhost:{port}/plaintext"; akzLog.Inf(" REQ URL :" + url); string res = await akzHttpClient.Shared.Get(url).FetchString(); akzLog.Inf(" RES LEN :" + res.Length); diff --git a/frameworks/CSharp/touchsocket/src/TouchSocketHttp/TouchSocketHttp.csproj b/frameworks/CSharp/touchsocket/src/TouchSocketHttp/TouchSocketHttp.csproj index 1b9d682382f..af57847b787 100644 --- a/frameworks/CSharp/touchsocket/src/TouchSocketHttp/TouchSocketHttp.csproj +++ b/frameworks/CSharp/touchsocket/src/TouchSocketHttp/TouchSocketHttp.csproj @@ -10,8 +10,8 @@ - - + + From db493eba40fcec5047152a5d7a726a0f8418402b Mon Sep 17 00:00:00 2001 From: AkazawaYun <408193813@qq.com> Date: Sat, 25 Oct 2025 09:59:23 +0800 Subject: [PATCH 17/50] =?UTF-8?q?=E4=B8=8D=E5=B0=8F=E5=BF=83=E5=A4=9A?= =?UTF-8?q?=E6=8F=90=E4=BA=A4=E4=BA=86=E5=88=AB=E4=BA=BA=E7=9A=84=E6=A1=86?= =?UTF-8?q?=E6=9E=B6...=E6=94=B9=E5=9B=9E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../akazawayun.pro/src/AkazawaYun.FrameworkBenchmarks.csproj | 2 -- frameworks/CSharp/akazawayun.pro/src/Program.cs | 2 +- .../touchsocket/src/TouchSocketHttp/TouchSocketHttp.csproj | 4 ++-- 3 files changed, 3 insertions(+), 5 deletions(-) diff --git a/frameworks/CSharp/akazawayun.pro/src/AkazawaYun.FrameworkBenchmarks.csproj b/frameworks/CSharp/akazawayun.pro/src/AkazawaYun.FrameworkBenchmarks.csproj index 0d73f546c03..314e4b31339 100644 --- a/frameworks/CSharp/akazawayun.pro/src/AkazawaYun.FrameworkBenchmarks.csproj +++ b/frameworks/CSharp/akazawayun.pro/src/AkazawaYun.FrameworkBenchmarks.csproj @@ -12,8 +12,6 @@ true true - Linux - ..\..\..\..\..\..\AkazawaYun.FrameworkBenchmarks diff --git a/frameworks/CSharp/akazawayun.pro/src/Program.cs b/frameworks/CSharp/akazawayun.pro/src/Program.cs index 07fd617ba27..f03bd730ffb 100644 --- a/frameworks/CSharp/akazawayun.pro/src/Program.cs +++ b/frameworks/CSharp/akazawayun.pro/src/Program.cs @@ -43,7 +43,7 @@ static async Task Main() akzLog.Inf(" RES BODY:" + res); akzLog.Inf("[OK, I WORK FINE]"); - akzLog.Default = akzLog.Output.None; + akzLog.Default = akzLog.Output.NoneButWar; await Task.Delay(-1); } diff --git a/frameworks/CSharp/touchsocket/src/TouchSocketHttp/TouchSocketHttp.csproj b/frameworks/CSharp/touchsocket/src/TouchSocketHttp/TouchSocketHttp.csproj index af57847b787..1b9d682382f 100644 --- a/frameworks/CSharp/touchsocket/src/TouchSocketHttp/TouchSocketHttp.csproj +++ b/frameworks/CSharp/touchsocket/src/TouchSocketHttp/TouchSocketHttp.csproj @@ -10,8 +10,8 @@ - - + + From ed15ca9e4964c59f7a4359341c85089bc0a97b8c Mon Sep 17 00:00:00 2001 From: AkazawaYun <408193813@qq.com> Date: Sat, 25 Oct 2025 10:31:40 +0800 Subject: [PATCH 18/50] akazawayun fix bug --- .../akazawayun.pro/src/AkazawaYun.FrameworkBenchmarks.csproj | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/frameworks/CSharp/akazawayun.pro/src/AkazawaYun.FrameworkBenchmarks.csproj b/frameworks/CSharp/akazawayun.pro/src/AkazawaYun.FrameworkBenchmarks.csproj index 314e4b31339..3b180a558e7 100644 --- a/frameworks/CSharp/akazawayun.pro/src/AkazawaYun.FrameworkBenchmarks.csproj +++ b/frameworks/CSharp/akazawayun.pro/src/AkazawaYun.FrameworkBenchmarks.csproj @@ -1,4 +1,4 @@ - + Exe @@ -15,7 +15,7 @@ - + From 36356545cf1d2b65613eea112952788cce1b3d10 Mon Sep 17 00:00:00 2001 From: AkazawaYun <408193813@qq.com> Date: Sat, 25 Oct 2025 10:37:49 +0800 Subject: [PATCH 19/50] remove db test there is some error in mysql --- frameworks/CSharp/akazawayun.pro/benchmark_config.json | 3 --- 1 file changed, 3 deletions(-) diff --git a/frameworks/CSharp/akazawayun.pro/benchmark_config.json b/frameworks/CSharp/akazawayun.pro/benchmark_config.json index 00ccc11eceb..6584d0cf290 100644 --- a/frameworks/CSharp/akazawayun.pro/benchmark_config.json +++ b/frameworks/CSharp/akazawayun.pro/benchmark_config.json @@ -8,9 +8,6 @@ "webserver": "akazawayun.pro", "plaintext_url": "/plaintext", "json_url": "/json", - "db_url": "/db", - "query_url": "/queries?queries=", - "update_url": "/updates?queries=", "port": 2022, "classification": "Micro", "approach": "Realistic", From 5808224123a0eaaca2bfa2ff02a699c1320190bc Mon Sep 17 00:00:00 2001 From: AkazawaYun <408193813@qq.com> Date: Sat, 25 Oct 2025 11:32:26 +0800 Subject: [PATCH 20/50] confirmed there is bug in mysql.data 9.5.0 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 还是用8080端口吧- -b, 都用8080, 改其他的对比测时不方便 --- frameworks/CSharp/akazawayun.pro/akazawayun.pro.dockerfile | 2 +- frameworks/CSharp/akazawayun.pro/benchmark_config.json | 2 +- frameworks/CSharp/akazawayun.pro/src/Program.cs | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/frameworks/CSharp/akazawayun.pro/akazawayun.pro.dockerfile b/frameworks/CSharp/akazawayun.pro/akazawayun.pro.dockerfile index 44d69f1c8fa..7ae1060903d 100644 --- a/frameworks/CSharp/akazawayun.pro/akazawayun.pro.dockerfile +++ b/frameworks/CSharp/akazawayun.pro/akazawayun.pro.dockerfile @@ -9,5 +9,5 @@ FROM mcr.microsoft.com/dotnet/sdk:9.0 AS runtime WORKDIR /app COPY --from=publish /app/publish . -EXPOSE 2022 +EXPOSE 8080 ENTRYPOINT ["dotnet", "AkazawaYun.FrameworkBenchmarks.dll"] diff --git a/frameworks/CSharp/akazawayun.pro/benchmark_config.json b/frameworks/CSharp/akazawayun.pro/benchmark_config.json index 6584d0cf290..0a38c3f9e1e 100644 --- a/frameworks/CSharp/akazawayun.pro/benchmark_config.json +++ b/frameworks/CSharp/akazawayun.pro/benchmark_config.json @@ -8,7 +8,7 @@ "webserver": "akazawayun.pro", "plaintext_url": "/plaintext", "json_url": "/json", - "port": 2022, + "port": 8080, "classification": "Micro", "approach": "Realistic", "platform": ".NET", diff --git a/frameworks/CSharp/akazawayun.pro/src/Program.cs b/frameworks/CSharp/akazawayun.pro/src/Program.cs index f03bd730ffb..80f0e45f587 100644 --- a/frameworks/CSharp/akazawayun.pro/src/Program.cs +++ b/frameworks/CSharp/akazawayun.pro/src/Program.cs @@ -9,7 +9,7 @@ class Program : IPostFunctionWrapper { static readonly akzWebBuilder builder; static readonly akzDbFactory mysql; - const int port = 2022; + const int port = 8080; static Program() { From 1f951fc341e615d10627d59881f8fe7634e3adae Mon Sep 17 00:00:00 2001 From: AkazawaYun <408193813@qq.com> Date: Sat, 25 Oct 2025 11:35:25 +0800 Subject: [PATCH 21/50] downgrade mysql.data back to 9.4.0 --- frameworks/CSharp/akazawayun.pro/benchmark_config.json | 3 +++ .../akazawayun.pro/src/AkazawaYun.FrameworkBenchmarks.csproj | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/frameworks/CSharp/akazawayun.pro/benchmark_config.json b/frameworks/CSharp/akazawayun.pro/benchmark_config.json index 0a38c3f9e1e..8f067f8fee6 100644 --- a/frameworks/CSharp/akazawayun.pro/benchmark_config.json +++ b/frameworks/CSharp/akazawayun.pro/benchmark_config.json @@ -8,6 +8,9 @@ "webserver": "akazawayun.pro", "plaintext_url": "/plaintext", "json_url": "/json", + "db_url": "/db", + "query_url": "/queries?queries=", + "update_url": "/updates?queries=", "port": 8080, "classification": "Micro", "approach": "Realistic", diff --git a/frameworks/CSharp/akazawayun.pro/src/AkazawaYun.FrameworkBenchmarks.csproj b/frameworks/CSharp/akazawayun.pro/src/AkazawaYun.FrameworkBenchmarks.csproj index 3b180a558e7..fc3dce09ca7 100644 --- a/frameworks/CSharp/akazawayun.pro/src/AkazawaYun.FrameworkBenchmarks.csproj +++ b/frameworks/CSharp/akazawayun.pro/src/AkazawaYun.FrameworkBenchmarks.csproj @@ -16,7 +16,7 @@ - + From 91a50a4812c1f345a4e3e5fa9c6425efe6e68432 Mon Sep 17 00:00:00 2001 From: AkazawaYun <408193813@qq.com> Date: Sun, 26 Oct 2025 01:52:52 +0800 Subject: [PATCH 22/50] fix bug of akazawayun.pro --- .../akazawayun.pro/src/AkazawaYun.FrameworkBenchmarks.csproj | 2 +- frameworks/CSharp/akazawayun.pro/src/Program.cs | 5 +++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/frameworks/CSharp/akazawayun.pro/src/AkazawaYun.FrameworkBenchmarks.csproj b/frameworks/CSharp/akazawayun.pro/src/AkazawaYun.FrameworkBenchmarks.csproj index fc3dce09ca7..d3bbe1b17cc 100644 --- a/frameworks/CSharp/akazawayun.pro/src/AkazawaYun.FrameworkBenchmarks.csproj +++ b/frameworks/CSharp/akazawayun.pro/src/AkazawaYun.FrameworkBenchmarks.csproj @@ -15,7 +15,7 @@ - + diff --git a/frameworks/CSharp/akazawayun.pro/src/Program.cs b/frameworks/CSharp/akazawayun.pro/src/Program.cs index 80f0e45f587..bd4ffe628bc 100644 --- a/frameworks/CSharp/akazawayun.pro/src/Program.cs +++ b/frameworks/CSharp/akazawayun.pro/src/Program.cs @@ -23,9 +23,11 @@ static Program() }); mysql = new akzDbBuilderII() .SetServer("tfb-database") - //.SetServer("localhost") + //.SetServer("localhost:3306") .SetUser("benchmarkdbuser") + //.SetUser("root") .SetPwd("benchmarkdbpass") + //.SetPwd("123456") .SetDatabase("hello_world") .SetCharset() .SetOtherset() @@ -98,7 +100,6 @@ static int ParseCount(string queries) } - public class akzWebInterceptorAsPost : WebInterceptor { public override ValueTask Intercept(IHttpContext http) From 2280f950fff945646d3113fd9a11f25236e592c5 Mon Sep 17 00:00:00 2001 From: AkazawaYun <408193813@qq.com> Date: Sat, 1 Nov 2025 12:14:39 +0800 Subject: [PATCH 23/50] update version of akazawayun.pro --- .../akazawayun.pro/src/AkazawaYun.FrameworkBenchmarks.csproj | 2 +- frameworks/CSharp/akazawayun.pro/src/Program.cs | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/frameworks/CSharp/akazawayun.pro/src/AkazawaYun.FrameworkBenchmarks.csproj b/frameworks/CSharp/akazawayun.pro/src/AkazawaYun.FrameworkBenchmarks.csproj index d3bbe1b17cc..51ed504b646 100644 --- a/frameworks/CSharp/akazawayun.pro/src/AkazawaYun.FrameworkBenchmarks.csproj +++ b/frameworks/CSharp/akazawayun.pro/src/AkazawaYun.FrameworkBenchmarks.csproj @@ -15,7 +15,7 @@ - + diff --git a/frameworks/CSharp/akazawayun.pro/src/Program.cs b/frameworks/CSharp/akazawayun.pro/src/Program.cs index bd4ffe628bc..b74bb231ca0 100644 --- a/frameworks/CSharp/akazawayun.pro/src/Program.cs +++ b/frameworks/CSharp/akazawayun.pro/src/Program.cs @@ -14,8 +14,10 @@ class Program : IPostFunctionWrapper static Program() { akzJson.Config(null, AotJsonContext.Default); - builder = akzWebBuilder.Shared.SetPort(port) + builder = akzWebBuilder.Shared.SetPort(port).SetDev() + .Add(() => null) .Build() + .Config(lis => lis.LogLevel = 0) .Config(itc => { itc.ClearInterceptor(); From c27a576adfc21de255fd25b5105427372ea28153 Mon Sep 17 00:00:00 2001 From: AkazawaYun <408193813@qq.com> Date: Sun, 2 Nov 2025 04:09:24 +0800 Subject: [PATCH 24/50] update version --- .../akazawayun.pro/src/AkazawaYun.FrameworkBenchmarks.csproj | 2 +- frameworks/CSharp/akazawayun.pro/src/Program.cs | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/frameworks/CSharp/akazawayun.pro/src/AkazawaYun.FrameworkBenchmarks.csproj b/frameworks/CSharp/akazawayun.pro/src/AkazawaYun.FrameworkBenchmarks.csproj index 51ed504b646..2a2482a204e 100644 --- a/frameworks/CSharp/akazawayun.pro/src/AkazawaYun.FrameworkBenchmarks.csproj +++ b/frameworks/CSharp/akazawayun.pro/src/AkazawaYun.FrameworkBenchmarks.csproj @@ -15,7 +15,7 @@ - + diff --git a/frameworks/CSharp/akazawayun.pro/src/Program.cs b/frameworks/CSharp/akazawayun.pro/src/Program.cs index b74bb231ca0..af3151846ec 100644 --- a/frameworks/CSharp/akazawayun.pro/src/Program.cs +++ b/frameworks/CSharp/akazawayun.pro/src/Program.cs @@ -15,7 +15,7 @@ static Program() { akzJson.Config(null, AotJsonContext.Default); builder = akzWebBuilder.Shared.SetPort(port).SetDev() - .Add(() => null) + .Add(() => null) .Build() .Config(lis => lis.LogLevel = 0) .Config(itc => From 3bf0f3f48cfa6476332bcac30d506d4357cf6d71 Mon Sep 17 00:00:00 2001 From: AkazawaYun <408193813@qq.com> Date: Mon, 3 Nov 2025 04:34:35 +0800 Subject: [PATCH 25/50] add platform test --- ...enchmarks.sln => AkazawaYun.Benchmark.sln} | 10 ++- .../akazawayun.pro-platform.dockerfile | 13 ++++ .../akazawayun.pro/akazawayun.pro.dockerfile | 4 +- .../akazawayun.pro/benchmark_config.json | 68 ++++++++++++------- .../AkazawaYun.Benchmark.Platform.csproj | 21 ++++++ .../AkazawaYun.Benchmark.Platform/Model.cs | 14 ++++ .../MyBenchmarkReceptor.cs | 55 +++++++++++++++ .../AkazawaYun.Benchmark.Platform/Program.cs | 37 ++++++++++ .../AkazawaYun.Benchmark.WebApi.csproj} | 2 +- .../Model.cs | 2 +- .../Mysql.cs | 2 +- .../Program.cs | 2 +- .../WorldService.cs | 2 +- 13 files changed, 197 insertions(+), 35 deletions(-) rename frameworks/CSharp/akazawayun.pro/{AkazawaYun.FrameworkBenchmarks.sln => AkazawaYun.Benchmark.sln} (58%) create mode 100644 frameworks/CSharp/akazawayun.pro/akazawayun.pro-platform.dockerfile create mode 100644 frameworks/CSharp/akazawayun.pro/src/AkazawaYun.Benchmark.Platform/AkazawaYun.Benchmark.Platform.csproj create mode 100644 frameworks/CSharp/akazawayun.pro/src/AkazawaYun.Benchmark.Platform/Model.cs create mode 100644 frameworks/CSharp/akazawayun.pro/src/AkazawaYun.Benchmark.Platform/MyBenchmarkReceptor.cs create mode 100644 frameworks/CSharp/akazawayun.pro/src/AkazawaYun.Benchmark.Platform/Program.cs rename frameworks/CSharp/akazawayun.pro/src/{AkazawaYun.FrameworkBenchmarks.csproj => AkazawaYun.Benchmark.WebApi/AkazawaYun.Benchmark.WebApi.csproj} (98%) rename frameworks/CSharp/akazawayun.pro/src/{ => AkazawaYun.Benchmark.WebApi}/Model.cs (90%) rename frameworks/CSharp/akazawayun.pro/src/{ => AkazawaYun.Benchmark.WebApi}/Mysql.cs (82%) rename frameworks/CSharp/akazawayun.pro/src/{ => AkazawaYun.Benchmark.WebApi}/Program.cs (98%) rename frameworks/CSharp/akazawayun.pro/src/{ => AkazawaYun.Benchmark.WebApi}/WorldService.cs (96%) diff --git a/frameworks/CSharp/akazawayun.pro/AkazawaYun.FrameworkBenchmarks.sln b/frameworks/CSharp/akazawayun.pro/AkazawaYun.Benchmark.sln similarity index 58% rename from frameworks/CSharp/akazawayun.pro/AkazawaYun.FrameworkBenchmarks.sln rename to frameworks/CSharp/akazawayun.pro/AkazawaYun.Benchmark.sln index e2c50c4d4fd..66c1850c7f3 100644 --- a/frameworks/CSharp/akazawayun.pro/AkazawaYun.FrameworkBenchmarks.sln +++ b/frameworks/CSharp/akazawayun.pro/AkazawaYun.Benchmark.sln @@ -1,9 +1,11 @@  Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 17 -VisualStudioVersion = 17.14.36310.24 d17.14 +VisualStudioVersion = 17.14.36310.24 MinimumVisualStudioVersion = 10.0.40219.1 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AkazawaYun.FrameworkBenchmarks", "src/AkazawaYun.FrameworkBenchmarks.csproj", "{BB5587FE-E4A0-851D-6025-F5FF0EC54525}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AkazawaYun.Benchmark.WebApi", "src\AkazawaYun.Benchmark.WebApi\AkazawaYun.Benchmark.WebApi.csproj", "{BB5587FE-E4A0-851D-6025-F5FF0EC54525}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AkazawaYun.Benchmark.Platform", "src\AkazawaYun.Benchmark.Platform\AkazawaYun.Benchmark.Platform.csproj", "{E7CA7DF7-F4AB-47EC-BF2B-1148058CDF43}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -15,6 +17,10 @@ Global {BB5587FE-E4A0-851D-6025-F5FF0EC54525}.Debug|Any CPU.Build.0 = Debug|Any CPU {BB5587FE-E4A0-851D-6025-F5FF0EC54525}.Release|Any CPU.ActiveCfg = Release|Any CPU {BB5587FE-E4A0-851D-6025-F5FF0EC54525}.Release|Any CPU.Build.0 = Release|Any CPU + {E7CA7DF7-F4AB-47EC-BF2B-1148058CDF43}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E7CA7DF7-F4AB-47EC-BF2B-1148058CDF43}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E7CA7DF7-F4AB-47EC-BF2B-1148058CDF43}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E7CA7DF7-F4AB-47EC-BF2B-1148058CDF43}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/frameworks/CSharp/akazawayun.pro/akazawayun.pro-platform.dockerfile b/frameworks/CSharp/akazawayun.pro/akazawayun.pro-platform.dockerfile new file mode 100644 index 00000000000..09f68ecd72d --- /dev/null +++ b/frameworks/CSharp/akazawayun.pro/akazawayun.pro-platform.dockerfile @@ -0,0 +1,13 @@ +# 生成 +FROM mcr.microsoft.com/dotnet/sdk:9.0 AS publish +WORKDIR /app +COPY src/AkazawaYun.Benchmark.Platform . +RUN dotnet publish -c Release -o /app/publish + +# 运行 +FROM mcr.microsoft.com/dotnet/sdk:9.0 AS runtime +WORKDIR /app +COPY --from=publish /app/publish . + +EXPOSE 8080 +ENTRYPOINT ["dotnet", "AkazawaYun.Benchmark.Platform.dll"] diff --git a/frameworks/CSharp/akazawayun.pro/akazawayun.pro.dockerfile b/frameworks/CSharp/akazawayun.pro/akazawayun.pro.dockerfile index 7ae1060903d..439e8de4959 100644 --- a/frameworks/CSharp/akazawayun.pro/akazawayun.pro.dockerfile +++ b/frameworks/CSharp/akazawayun.pro/akazawayun.pro.dockerfile @@ -1,7 +1,7 @@ # 生成 FROM mcr.microsoft.com/dotnet/sdk:9.0 AS publish WORKDIR /app -COPY src . +COPY src/AkazawaYun.Benchmark.WebApi . RUN dotnet publish -c Release -o /app/publish # 运行 @@ -10,4 +10,4 @@ WORKDIR /app COPY --from=publish /app/publish . EXPOSE 8080 -ENTRYPOINT ["dotnet", "AkazawaYun.FrameworkBenchmarks.dll"] +ENTRYPOINT ["dotnet", "AkazawaYun.Benchmark.WebApi.dll"] diff --git a/frameworks/CSharp/akazawayun.pro/benchmark_config.json b/frameworks/CSharp/akazawayun.pro/benchmark_config.json index 8f067f8fee6..c9655a9f9c9 100644 --- a/frameworks/CSharp/akazawayun.pro/benchmark_config.json +++ b/frameworks/CSharp/akazawayun.pro/benchmark_config.json @@ -1,28 +1,44 @@ { - "framework": "akazawayun.pro", - "tests": [ - { - "default": { - "display_name": "akazawayun.pro", - "framework": "akazawayun.pro", - "webserver": "akazawayun.pro", - "plaintext_url": "/plaintext", - "json_url": "/json", - "db_url": "/db", - "query_url": "/queries?queries=", - "update_url": "/updates?queries=", - "port": 8080, - "classification": "Micro", - "approach": "Realistic", - "platform": ".NET", - "language": "C#", - "flavor": "CoreCLR", - "os": "Linux", - "database_os": "Linux", - "database": "MySQL", - "orm": "Micro", - "notes": "" - } - } - ] + "framework": "akazawayun.pro", + "tests": [ + { + "default": { + "display_name": "akazawayun.pro [webapi]", + "framework": "akazawayun.pro", + "webserver": "akazawayun.pro", + "plaintext_url": "/plaintext", + "json_url": "/json", + "db_url": "/db", + "query_url": "/queries?queries=", + "update_url": "/updates?queries=", + "port": 8080, + "classification": "Micro", + "approach": "Realistic", + "platform": ".NET", + "language": "C#", + "flavor": "CoreCLR", + "os": "Linux", + "database_os": "Linux", + "database": "MySQL", + "orm": "Micro", + "notes": "" + }, + "platform": { + "display_name": "akazawayun.pro [platform]", + "framework": "akazawayun.pro", + "webserver": "akazawayun.pro", + "plaintext_url": "/plaintext", + "json_url": "/json", + "port": 8080, + "classification": "Platform", + "approach": "Realistic", + "platform": ".NET", + "language": "C#", + "flavor": "CoreCLR", + "os": "Linux", + "database_os": "Linux", + "notes": "" + } + } + ] } diff --git a/frameworks/CSharp/akazawayun.pro/src/AkazawaYun.Benchmark.Platform/AkazawaYun.Benchmark.Platform.csproj b/frameworks/CSharp/akazawayun.pro/src/AkazawaYun.Benchmark.Platform/AkazawaYun.Benchmark.Platform.csproj new file mode 100644 index 00000000000..64baee178a5 --- /dev/null +++ b/frameworks/CSharp/akazawayun.pro/src/AkazawaYun.Benchmark.Platform/AkazawaYun.Benchmark.Platform.csproj @@ -0,0 +1,21 @@ + + + + Exe + net9.0 + enable + enable + true + false + + + + true + true + + + + + + + diff --git a/frameworks/CSharp/akazawayun.pro/src/AkazawaYun.Benchmark.Platform/Model.cs b/frameworks/CSharp/akazawayun.pro/src/AkazawaYun.Benchmark.Platform/Model.cs new file mode 100644 index 00000000000..574123c3697 --- /dev/null +++ b/frameworks/CSharp/akazawayun.pro/src/AkazawaYun.Benchmark.Platform/Model.cs @@ -0,0 +1,14 @@ +#pragma warning disable IDE1006,CS8981 +using System.Text.Json.Serialization; + +namespace AkazawaYun.Benchmark.Platform; + + +[JsonSerializable(typeof(JsonModel))] +public partial class AotJsonContext : JsonSerializerContext { } + + +public class JsonModel +{ + public string? message { get; set; } +} diff --git a/frameworks/CSharp/akazawayun.pro/src/AkazawaYun.Benchmark.Platform/MyBenchmarkReceptor.cs b/frameworks/CSharp/akazawayun.pro/src/AkazawaYun.Benchmark.Platform/MyBenchmarkReceptor.cs new file mode 100644 index 00000000000..e6ed8e9c5b7 --- /dev/null +++ b/frameworks/CSharp/akazawayun.pro/src/AkazawaYun.Benchmark.Platform/MyBenchmarkReceptor.cs @@ -0,0 +1,55 @@ +using AkazawaYun.PRO7; +using System.Text; + +namespace AkazawaYun.Benchmark.Platform; + +class MyBenchmarkReceptor : akzWebReceptorBenchmark +{ + readonly JsonModel JsonModel; + readonly ReadOnlyMemory JsonContentLength; + + + public MyBenchmarkReceptor() + { + JsonModel = new() + { + message = "Hello, World!" + }; + akzJson.Text2Json(JsonModel, out ReadOnlyMemory json); + JsonContentLength = Encoding.UTF8.GetBytes($"{json.Length}\r\n\r\n"); + } + + + public override ValueTask SendPlaintext(IHttpContext http) + { + return base.SendPlaintext(http); + } + public override async ValueTask SendJson(IHttpContext http) + { + await http.Slient.Send(DataJson_OnlyHeaderExceptContentLength); + await http.Slient.Send(JsonContentLength); + akzJson.Text2Json(JsonModel, out ReadOnlyMemory json); + await http.Slient.Send(json); + } + public override ValueTask SendDb(IHttpContext http) + { + throw new NotImplementedException(); + } + public override ValueTask SendQueries(IHttpContext http) + { + throw new NotImplementedException(); + } + public override ValueTask SendUpdates(IHttpContext http) + { + throw new NotImplementedException(); + } + public override ValueTask SendCachedQueries(IHttpContext http) + { + throw new NotImplementedException(); + } + public override ValueTask SendFortunes(IHttpContext http) + { + throw new NotImplementedException(); + } + +} diff --git a/frameworks/CSharp/akazawayun.pro/src/AkazawaYun.Benchmark.Platform/Program.cs b/frameworks/CSharp/akazawayun.pro/src/AkazawaYun.Benchmark.Platform/Program.cs new file mode 100644 index 00000000000..44dd91c0a3a --- /dev/null +++ b/frameworks/CSharp/akazawayun.pro/src/AkazawaYun.Benchmark.Platform/Program.cs @@ -0,0 +1,37 @@ +using AkazawaYun.PRO7; + +namespace AkazawaYun.Benchmark.Platform; + +class Program +{ + static readonly akzWebBuilder builder; + const int port = 8080; + + static Program() + { + akzLog.War("AkazawaYun.PRO 压力测试特供版 ver2025.11.3, 只支持 /plaintext 和 /json"); + akzJson.Config(null, AotJsonContext.Default); + builder = akzWebBuilder.Shared.SetPort(port).SetDev(true) + .Add(() => null) + .Add(() => new MyBenchmarkReceptor()) + .Add(() => new(port) + { + LogLevel = 0 + }).Build(); + } + static async Task Main() + { + await builder.Launch(); + + akzLog.Inf("[API SELF-TEST]"); + string url = $"http://localhost:{port}/plaintext"; + akzLog.Inf(" REQ URL :" + url); + string res = await akzHttpClient.Shared.Get(url).FetchString(); + akzLog.Inf(" RES LEN :" + res.Length); + akzLog.Inf(" RES BODY:" + res); + akzLog.Inf("[OK, I WORK FINE]"); + + akzLog.Default = akzLog.Output.NoneButWar; + await Task.Delay(-1); + } +} diff --git a/frameworks/CSharp/akazawayun.pro/src/AkazawaYun.FrameworkBenchmarks.csproj b/frameworks/CSharp/akazawayun.pro/src/AkazawaYun.Benchmark.WebApi/AkazawaYun.Benchmark.WebApi.csproj similarity index 98% rename from frameworks/CSharp/akazawayun.pro/src/AkazawaYun.FrameworkBenchmarks.csproj rename to frameworks/CSharp/akazawayun.pro/src/AkazawaYun.Benchmark.WebApi/AkazawaYun.Benchmark.WebApi.csproj index 2a2482a204e..469e112ef00 100644 --- a/frameworks/CSharp/akazawayun.pro/src/AkazawaYun.FrameworkBenchmarks.csproj +++ b/frameworks/CSharp/akazawayun.pro/src/AkazawaYun.Benchmark.WebApi/AkazawaYun.Benchmark.WebApi.csproj @@ -15,7 +15,7 @@ - + diff --git a/frameworks/CSharp/akazawayun.pro/src/Model.cs b/frameworks/CSharp/akazawayun.pro/src/AkazawaYun.Benchmark.WebApi/Model.cs similarity index 90% rename from frameworks/CSharp/akazawayun.pro/src/Model.cs rename to frameworks/CSharp/akazawayun.pro/src/AkazawaYun.Benchmark.WebApi/Model.cs index 2fdf2c6d1f3..c191e3416d5 100644 --- a/frameworks/CSharp/akazawayun.pro/src/Model.cs +++ b/frameworks/CSharp/akazawayun.pro/src/AkazawaYun.Benchmark.WebApi/Model.cs @@ -2,7 +2,7 @@ using AkazawaYun.AOT; using System.Text.Json.Serialization; -namespace AkazawaYun.FrameworkBenchmarks; +namespace AkazawaYun.Benchmark.WebApi; [JsonSerializable(typeof(JsonModel))] diff --git a/frameworks/CSharp/akazawayun.pro/src/Mysql.cs b/frameworks/CSharp/akazawayun.pro/src/AkazawaYun.Benchmark.WebApi/Mysql.cs similarity index 82% rename from frameworks/CSharp/akazawayun.pro/src/Mysql.cs rename to frameworks/CSharp/akazawayun.pro/src/AkazawaYun.Benchmark.WebApi/Mysql.cs index 8c056b15baa..049af6e21f3 100644 --- a/frameworks/CSharp/akazawayun.pro/src/Mysql.cs +++ b/frameworks/CSharp/akazawayun.pro/src/AkazawaYun.Benchmark.WebApi/Mysql.cs @@ -2,7 +2,7 @@ using MySql.Data.MySqlClient; using System.Data.Common; -namespace AkazawaYun.FrameworkBenchmarks; +namespace AkazawaYun.Benchmark.WebApi; class Mysql : akzDbFactory { diff --git a/frameworks/CSharp/akazawayun.pro/src/Program.cs b/frameworks/CSharp/akazawayun.pro/src/AkazawaYun.Benchmark.WebApi/Program.cs similarity index 98% rename from frameworks/CSharp/akazawayun.pro/src/Program.cs rename to frameworks/CSharp/akazawayun.pro/src/AkazawaYun.Benchmark.WebApi/Program.cs index af3151846ec..ab7234e6f72 100644 --- a/frameworks/CSharp/akazawayun.pro/src/Program.cs +++ b/frameworks/CSharp/akazawayun.pro/src/AkazawaYun.Benchmark.WebApi/Program.cs @@ -3,7 +3,7 @@ using AkazawaYun.AOT; using AkazawaYun.PRO7; -namespace AkazawaYun.FrameworkBenchmarks; +namespace AkazawaYun.Benchmark.WebApi; class Program : IPostFunctionWrapper { diff --git a/frameworks/CSharp/akazawayun.pro/src/WorldService.cs b/frameworks/CSharp/akazawayun.pro/src/AkazawaYun.Benchmark.WebApi/WorldService.cs similarity index 96% rename from frameworks/CSharp/akazawayun.pro/src/WorldService.cs rename to frameworks/CSharp/akazawayun.pro/src/AkazawaYun.Benchmark.WebApi/WorldService.cs index 1ef7f17e8a4..8f996368ac5 100644 --- a/frameworks/CSharp/akazawayun.pro/src/WorldService.cs +++ b/frameworks/CSharp/akazawayun.pro/src/AkazawaYun.Benchmark.WebApi/WorldService.cs @@ -1,6 +1,6 @@ using AkazawaYun.PRO7; -namespace AkazawaYun.FrameworkBenchmarks; +namespace AkazawaYun.Benchmark.WebApi; class WorldService { From 0516ab82262e15f08d11f9a703ebcdd55b6ddaef Mon Sep 17 00:00:00 2001 From: AkazawaYun <408193813@qq.com> Date: Tue, 4 Nov 2025 09:34:30 +0800 Subject: [PATCH 26/50] update nupkg version --- .../AkazawaYun.Benchmark.Platform.csproj | 2 +- .../AkazawaYun.Benchmark.Platform/Program.cs | 18 ++++++++---------- .../AkazawaYun.Benchmark.WebApi.csproj | 2 +- 3 files changed, 10 insertions(+), 12 deletions(-) diff --git a/frameworks/CSharp/akazawayun.pro/src/AkazawaYun.Benchmark.Platform/AkazawaYun.Benchmark.Platform.csproj b/frameworks/CSharp/akazawayun.pro/src/AkazawaYun.Benchmark.Platform/AkazawaYun.Benchmark.Platform.csproj index 64baee178a5..f59eaf8f615 100644 --- a/frameworks/CSharp/akazawayun.pro/src/AkazawaYun.Benchmark.Platform/AkazawaYun.Benchmark.Platform.csproj +++ b/frameworks/CSharp/akazawayun.pro/src/AkazawaYun.Benchmark.Platform/AkazawaYun.Benchmark.Platform.csproj @@ -15,7 +15,7 @@ - + diff --git a/frameworks/CSharp/akazawayun.pro/src/AkazawaYun.Benchmark.Platform/Program.cs b/frameworks/CSharp/akazawayun.pro/src/AkazawaYun.Benchmark.Platform/Program.cs index 44dd91c0a3a..269c16f48be 100644 --- a/frameworks/CSharp/akazawayun.pro/src/AkazawaYun.Benchmark.Platform/Program.cs +++ b/frameworks/CSharp/akazawayun.pro/src/AkazawaYun.Benchmark.Platform/Program.cs @@ -9,27 +9,25 @@ class Program static Program() { - akzLog.War("AkazawaYun.PRO 压力测试特供版 ver2025.11.3, 只支持 /plaintext 和 /json"); + akzLog.War("AkazawaYun.PRO 平台压力测试特供版 ver2025.11.3, 只支持 /plaintext 和 /json"); akzJson.Config(null, AotJsonContext.Default); builder = akzWebBuilder.Shared.SetPort(port).SetDev(true) .Add(() => null) .Add(() => new MyBenchmarkReceptor()) - .Add(() => new(port) - { - LogLevel = 0 - }).Build(); + .Add(() => new(port)) + .Build(); } static async Task Main() { await builder.Launch(); - akzLog.Inf("[API SELF-TEST]"); + Console.WriteLine("[API SELF-TEST]"); string url = $"http://localhost:{port}/plaintext"; - akzLog.Inf(" REQ URL :" + url); + Console.WriteLine(" REQ URL :" + url); string res = await akzHttpClient.Shared.Get(url).FetchString(); - akzLog.Inf(" RES LEN :" + res.Length); - akzLog.Inf(" RES BODY:" + res); - akzLog.Inf("[OK, I WORK FINE]"); + Console.WriteLine(" RES LEN :" + res.Length); + Console.WriteLine(" RES BODY:" + res); + Console.WriteLine("[OK, I WORK FINE]"); akzLog.Default = akzLog.Output.NoneButWar; await Task.Delay(-1); diff --git a/frameworks/CSharp/akazawayun.pro/src/AkazawaYun.Benchmark.WebApi/AkazawaYun.Benchmark.WebApi.csproj b/frameworks/CSharp/akazawayun.pro/src/AkazawaYun.Benchmark.WebApi/AkazawaYun.Benchmark.WebApi.csproj index 469e112ef00..547064216f4 100644 --- a/frameworks/CSharp/akazawayun.pro/src/AkazawaYun.Benchmark.WebApi/AkazawaYun.Benchmark.WebApi.csproj +++ b/frameworks/CSharp/akazawayun.pro/src/AkazawaYun.Benchmark.WebApi/AkazawaYun.Benchmark.WebApi.csproj @@ -15,7 +15,7 @@ - + From 3b6e6de2cd738a5c7e7cd8e6797c85646b79b3fb Mon Sep 17 00:00:00 2001 From: AkazawaYun <408193813@qq.com> Date: Tue, 11 Nov 2025 14:53:47 +0800 Subject: [PATCH 27/50] update version --- .../AkazawaYun.Benchmark.Platform.csproj | 2 +- .../AkazawaYun.Benchmark.WebApi.csproj | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/frameworks/CSharp/akazawayun.pro/src/AkazawaYun.Benchmark.Platform/AkazawaYun.Benchmark.Platform.csproj b/frameworks/CSharp/akazawayun.pro/src/AkazawaYun.Benchmark.Platform/AkazawaYun.Benchmark.Platform.csproj index f59eaf8f615..e43069a4338 100644 --- a/frameworks/CSharp/akazawayun.pro/src/AkazawaYun.Benchmark.Platform/AkazawaYun.Benchmark.Platform.csproj +++ b/frameworks/CSharp/akazawayun.pro/src/AkazawaYun.Benchmark.Platform/AkazawaYun.Benchmark.Platform.csproj @@ -15,7 +15,7 @@ - + diff --git a/frameworks/CSharp/akazawayun.pro/src/AkazawaYun.Benchmark.WebApi/AkazawaYun.Benchmark.WebApi.csproj b/frameworks/CSharp/akazawayun.pro/src/AkazawaYun.Benchmark.WebApi/AkazawaYun.Benchmark.WebApi.csproj index 547064216f4..452b23e493c 100644 --- a/frameworks/CSharp/akazawayun.pro/src/AkazawaYun.Benchmark.WebApi/AkazawaYun.Benchmark.WebApi.csproj +++ b/frameworks/CSharp/akazawayun.pro/src/AkazawaYun.Benchmark.WebApi/AkazawaYun.Benchmark.WebApi.csproj @@ -15,7 +15,7 @@ - + From 07fa2aa9971659bdbd0bfeff55e259dde0dc0c97 Mon Sep 17 00:00:00 2001 From: AkazawaYun <408193813@qq.com> Date: Wed, 12 Nov 2025 14:41:00 +0800 Subject: [PATCH 28/50] update version. --- .../AkazawaYun.Benchmark.Platform.csproj | 2 +- .../MyBenchmarkReceptor.cs | 7 +------ .../AkazawaYun.Benchmark.Platform/Program.cs | 19 ++----------------- 3 files changed, 4 insertions(+), 24 deletions(-) diff --git a/frameworks/CSharp/akazawayun.pro/src/AkazawaYun.Benchmark.Platform/AkazawaYun.Benchmark.Platform.csproj b/frameworks/CSharp/akazawayun.pro/src/AkazawaYun.Benchmark.Platform/AkazawaYun.Benchmark.Platform.csproj index e43069a4338..f5d25a355e5 100644 --- a/frameworks/CSharp/akazawayun.pro/src/AkazawaYun.Benchmark.Platform/AkazawaYun.Benchmark.Platform.csproj +++ b/frameworks/CSharp/akazawayun.pro/src/AkazawaYun.Benchmark.Platform/AkazawaYun.Benchmark.Platform.csproj @@ -15,7 +15,7 @@ - + diff --git a/frameworks/CSharp/akazawayun.pro/src/AkazawaYun.Benchmark.Platform/MyBenchmarkReceptor.cs b/frameworks/CSharp/akazawayun.pro/src/AkazawaYun.Benchmark.Platform/MyBenchmarkReceptor.cs index e6ed8e9c5b7..e79ab493524 100644 --- a/frameworks/CSharp/akazawayun.pro/src/AkazawaYun.Benchmark.Platform/MyBenchmarkReceptor.cs +++ b/frameworks/CSharp/akazawayun.pro/src/AkazawaYun.Benchmark.Platform/MyBenchmarkReceptor.cs @@ -1,12 +1,10 @@ using AkazawaYun.PRO7; -using System.Text; namespace AkazawaYun.Benchmark.Platform; class MyBenchmarkReceptor : akzWebReceptorBenchmark { readonly JsonModel JsonModel; - readonly ReadOnlyMemory JsonContentLength; public MyBenchmarkReceptor() @@ -15,8 +13,6 @@ public MyBenchmarkReceptor() { message = "Hello, World!" }; - akzJson.Text2Json(JsonModel, out ReadOnlyMemory json); - JsonContentLength = Encoding.UTF8.GetBytes($"{json.Length}\r\n\r\n"); } @@ -26,8 +22,7 @@ public override ValueTask SendPlaintext(IHttpContext http) } public override async ValueTask SendJson(IHttpContext http) { - await http.Slient.Send(DataJson_OnlyHeaderExceptContentLength); - await http.Slient.Send(JsonContentLength); + await http.Slient.Send(DataJson_OnlyHeader); akzJson.Text2Json(JsonModel, out ReadOnlyMemory json); await http.Slient.Send(json); } diff --git a/frameworks/CSharp/akazawayun.pro/src/AkazawaYun.Benchmark.Platform/Program.cs b/frameworks/CSharp/akazawayun.pro/src/AkazawaYun.Benchmark.Platform/Program.cs index 269c16f48be..e2acab53351 100644 --- a/frameworks/CSharp/akazawayun.pro/src/AkazawaYun.Benchmark.Platform/Program.cs +++ b/frameworks/CSharp/akazawayun.pro/src/AkazawaYun.Benchmark.Platform/Program.cs @@ -5,31 +5,16 @@ namespace AkazawaYun.Benchmark.Platform; class Program { static readonly akzWebBuilder builder; - const int port = 8080; static Program() { akzLog.War("AkazawaYun.PRO 平台压力测试特供版 ver2025.11.3, 只支持 /plaintext 和 /json"); - akzJson.Config(null, AotJsonContext.Default); - builder = akzWebBuilder.Shared.SetPort(port).SetDev(true) - .Add(() => null) - .Add(() => new MyBenchmarkReceptor()) - .Add(() => new(port)) - .Build(); + akzJson.Config(AotJsonContext.Default); + builder = akzWebBuilder.Shared.Build(new MyBenchmarkReceptor()); } static async Task Main() { await builder.Launch(); - - Console.WriteLine("[API SELF-TEST]"); - string url = $"http://localhost:{port}/plaintext"; - Console.WriteLine(" REQ URL :" + url); - string res = await akzHttpClient.Shared.Get(url).FetchString(); - Console.WriteLine(" RES LEN :" + res.Length); - Console.WriteLine(" RES BODY:" + res); - Console.WriteLine("[OK, I WORK FINE]"); - - akzLog.Default = akzLog.Output.NoneButWar; await Task.Delay(-1); } } From cd67ade9ad1aa2988b95ef75ad291577ccbc7591 Mon Sep 17 00:00:00 2001 From: AkazawaYun <408193813@qq.com> Date: Wed, 12 Nov 2025 15:07:57 +0800 Subject: [PATCH 29/50] fix debug --- .../AkazawaYun.Benchmark.Platform.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frameworks/CSharp/akazawayun.pro/src/AkazawaYun.Benchmark.Platform/AkazawaYun.Benchmark.Platform.csproj b/frameworks/CSharp/akazawayun.pro/src/AkazawaYun.Benchmark.Platform/AkazawaYun.Benchmark.Platform.csproj index f5d25a355e5..cdf987fdeb8 100644 --- a/frameworks/CSharp/akazawayun.pro/src/AkazawaYun.Benchmark.Platform/AkazawaYun.Benchmark.Platform.csproj +++ b/frameworks/CSharp/akazawayun.pro/src/AkazawaYun.Benchmark.Platform/AkazawaYun.Benchmark.Platform.csproj @@ -15,7 +15,7 @@ - + From f5de7723cc367aac41697e3e451c3ad1736c437a Mon Sep 17 00:00:00 2001 From: AkazawaYun <408193813@qq.com> Date: Tue, 25 Nov 2025 23:44:35 +0800 Subject: [PATCH 30/50] update version. --- .../AkazawaYun.Benchmark.Platform.csproj | 2 +- .../AkazawaYun.Benchmark.Platform/MyBenchmarkReceptor.cs | 4 ++-- .../src/AkazawaYun.Benchmark.Platform/Program.cs | 8 ++++---- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/frameworks/CSharp/akazawayun.pro/src/AkazawaYun.Benchmark.Platform/AkazawaYun.Benchmark.Platform.csproj b/frameworks/CSharp/akazawayun.pro/src/AkazawaYun.Benchmark.Platform/AkazawaYun.Benchmark.Platform.csproj index cdf987fdeb8..d0653ea3370 100644 --- a/frameworks/CSharp/akazawayun.pro/src/AkazawaYun.Benchmark.Platform/AkazawaYun.Benchmark.Platform.csproj +++ b/frameworks/CSharp/akazawayun.pro/src/AkazawaYun.Benchmark.Platform/AkazawaYun.Benchmark.Platform.csproj @@ -15,7 +15,7 @@ - + diff --git a/frameworks/CSharp/akazawayun.pro/src/AkazawaYun.Benchmark.Platform/MyBenchmarkReceptor.cs b/frameworks/CSharp/akazawayun.pro/src/AkazawaYun.Benchmark.Platform/MyBenchmarkReceptor.cs index e79ab493524..ca9bb7c1362 100644 --- a/frameworks/CSharp/akazawayun.pro/src/AkazawaYun.Benchmark.Platform/MyBenchmarkReceptor.cs +++ b/frameworks/CSharp/akazawayun.pro/src/AkazawaYun.Benchmark.Platform/MyBenchmarkReceptor.cs @@ -2,7 +2,7 @@ namespace AkazawaYun.Benchmark.Platform; -class MyBenchmarkReceptor : akzWebReceptorBenchmark +class MyBenchmarkReceptor : akaWebReceptorBenchmark { readonly JsonModel JsonModel; @@ -23,7 +23,7 @@ public override ValueTask SendPlaintext(IHttpContext http) public override async ValueTask SendJson(IHttpContext http) { await http.Slient.Send(DataJson_OnlyHeader); - akzJson.Text2Json(JsonModel, out ReadOnlyMemory json); + akaJson.Text2Json(JsonModel, out ReadOnlyMemory json); await http.Slient.Send(json); } public override ValueTask SendDb(IHttpContext http) diff --git a/frameworks/CSharp/akazawayun.pro/src/AkazawaYun.Benchmark.Platform/Program.cs b/frameworks/CSharp/akazawayun.pro/src/AkazawaYun.Benchmark.Platform/Program.cs index e2acab53351..9be953769c4 100644 --- a/frameworks/CSharp/akazawayun.pro/src/AkazawaYun.Benchmark.Platform/Program.cs +++ b/frameworks/CSharp/akazawayun.pro/src/AkazawaYun.Benchmark.Platform/Program.cs @@ -4,13 +4,13 @@ namespace AkazawaYun.Benchmark.Platform; class Program { - static readonly akzWebBuilder builder; + static readonly akaWebBuilder builder; static Program() { - akzLog.War("AkazawaYun.PRO 平台压力测试特供版 ver2025.11.3, 只支持 /plaintext 和 /json"); - akzJson.Config(AotJsonContext.Default); - builder = akzWebBuilder.Shared.Build(new MyBenchmarkReceptor()); + akaLog.War("AkazawaYun.PRO 平台压力测试特供版 ver2025.11.3, 只支持 /plaintext 和 /json"); + akaJson.Config(AotJsonContext.Default); + builder = akaWebBuilder.Shared.Build(new MyBenchmarkReceptor()); } static async Task Main() { From d2ebc6e3182bac3ce5f0d1f68b79ea30de76fdc3 Mon Sep 17 00:00:00 2001 From: AkazawaYun <408193813@qq.com> Date: Mon, 1 Dec 2025 23:21:01 +0800 Subject: [PATCH 31/50] update version. --- .../AkazawaYun.Benchmark.Platform.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frameworks/CSharp/akazawayun.pro/src/AkazawaYun.Benchmark.Platform/AkazawaYun.Benchmark.Platform.csproj b/frameworks/CSharp/akazawayun.pro/src/AkazawaYun.Benchmark.Platform/AkazawaYun.Benchmark.Platform.csproj index d0653ea3370..b2312be1bbb 100644 --- a/frameworks/CSharp/akazawayun.pro/src/AkazawaYun.Benchmark.Platform/AkazawaYun.Benchmark.Platform.csproj +++ b/frameworks/CSharp/akazawayun.pro/src/AkazawaYun.Benchmark.Platform/AkazawaYun.Benchmark.Platform.csproj @@ -15,7 +15,7 @@ - + From 6cf24a6369e7d52149d694a06b7559012d8ab702 Mon Sep 17 00:00:00 2001 From: AkazawaYun <408193813@qq.com> Date: Sun, 21 Dec 2025 22:03:26 +0800 Subject: [PATCH 32/50] update version to decrease send count. --- .../AkazawaYun.Benchmark.Platform.csproj | 2 +- .../MyBenchmarkReceptor.cs | 15 ++++++++------- 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/frameworks/CSharp/akazawayun.pro/src/AkazawaYun.Benchmark.Platform/AkazawaYun.Benchmark.Platform.csproj b/frameworks/CSharp/akazawayun.pro/src/AkazawaYun.Benchmark.Platform/AkazawaYun.Benchmark.Platform.csproj index b2312be1bbb..24101034fa2 100644 --- a/frameworks/CSharp/akazawayun.pro/src/AkazawaYun.Benchmark.Platform/AkazawaYun.Benchmark.Platform.csproj +++ b/frameworks/CSharp/akazawayun.pro/src/AkazawaYun.Benchmark.Platform/AkazawaYun.Benchmark.Platform.csproj @@ -15,7 +15,7 @@ - + diff --git a/frameworks/CSharp/akazawayun.pro/src/AkazawaYun.Benchmark.Platform/MyBenchmarkReceptor.cs b/frameworks/CSharp/akazawayun.pro/src/AkazawaYun.Benchmark.Platform/MyBenchmarkReceptor.cs index ca9bb7c1362..2dd6f111fa6 100644 --- a/frameworks/CSharp/akazawayun.pro/src/AkazawaYun.Benchmark.Platform/MyBenchmarkReceptor.cs +++ b/frameworks/CSharp/akazawayun.pro/src/AkazawaYun.Benchmark.Platform/MyBenchmarkReceptor.cs @@ -5,7 +5,7 @@ namespace AkazawaYun.Benchmark.Platform; class MyBenchmarkReceptor : akaWebReceptorBenchmark { readonly JsonModel JsonModel; - + readonly ReadOnlyMemory OnlyUsedForTestNonAllocJson; public MyBenchmarkReceptor() { @@ -13,18 +13,19 @@ public MyBenchmarkReceptor() { message = "Hello, World!" }; + akaJson.Text2Json(JsonModel, out OnlyUsedForTestNonAllocJson); } - public override ValueTask SendPlaintext(IHttpContext http) - { - return base.SendPlaintext(http); - } public override async ValueTask SendJson(IHttpContext http) { await http.Slient.Send(DataJson_OnlyHeader); - akaJson.Text2Json(JsonModel, out ReadOnlyMemory json); - await http.Slient.Send(json); + + //akaJson.Text2Json(JsonModel, out ReadOnlyMemory json); + //await http.Slient.Send(json); + + // [WARN_2025.12.21] this code is temporaryly not creating new json for every request, only for test if use fixed json data to simulate non-alloc new byte-array !!! + await http.Slient.Send(OnlyUsedForTestNonAllocJson); } public override ValueTask SendDb(IHttpContext http) { From b305cc3c89220f25637e511fe0f68b0469d9b928 Mon Sep 17 00:00:00 2001 From: AkazawaYun <408193813@qq.com> Date: Thu, 15 Jan 2026 00:25:59 +0800 Subject: [PATCH 33/50] update version. --- .../AkazawaYun.Benchmark.Platform.csproj | 2 +- .../AkazawaYun.Benchmark.Platform/MyBenchmarkReceptor.cs | 9 ++------- .../src/AkazawaYun.Benchmark.Platform/Program.cs | 2 +- 3 files changed, 4 insertions(+), 9 deletions(-) diff --git a/frameworks/CSharp/akazawayun.pro/src/AkazawaYun.Benchmark.Platform/AkazawaYun.Benchmark.Platform.csproj b/frameworks/CSharp/akazawayun.pro/src/AkazawaYun.Benchmark.Platform/AkazawaYun.Benchmark.Platform.csproj index 24101034fa2..e1773f668f1 100644 --- a/frameworks/CSharp/akazawayun.pro/src/AkazawaYun.Benchmark.Platform/AkazawaYun.Benchmark.Platform.csproj +++ b/frameworks/CSharp/akazawayun.pro/src/AkazawaYun.Benchmark.Platform/AkazawaYun.Benchmark.Platform.csproj @@ -15,7 +15,7 @@ - + diff --git a/frameworks/CSharp/akazawayun.pro/src/AkazawaYun.Benchmark.Platform/MyBenchmarkReceptor.cs b/frameworks/CSharp/akazawayun.pro/src/AkazawaYun.Benchmark.Platform/MyBenchmarkReceptor.cs index 2dd6f111fa6..e1d173f7f38 100644 --- a/frameworks/CSharp/akazawayun.pro/src/AkazawaYun.Benchmark.Platform/MyBenchmarkReceptor.cs +++ b/frameworks/CSharp/akazawayun.pro/src/AkazawaYun.Benchmark.Platform/MyBenchmarkReceptor.cs @@ -5,7 +5,6 @@ namespace AkazawaYun.Benchmark.Platform; class MyBenchmarkReceptor : akaWebReceptorBenchmark { readonly JsonModel JsonModel; - readonly ReadOnlyMemory OnlyUsedForTestNonAllocJson; public MyBenchmarkReceptor() { @@ -13,7 +12,6 @@ public MyBenchmarkReceptor() { message = "Hello, World!" }; - akaJson.Text2Json(JsonModel, out OnlyUsedForTestNonAllocJson); } @@ -21,11 +19,8 @@ public override async ValueTask SendJson(IHttpContext http) { await http.Slient.Send(DataJson_OnlyHeader); - //akaJson.Text2Json(JsonModel, out ReadOnlyMemory json); - //await http.Slient.Send(json); - - // [WARN_2025.12.21] this code is temporaryly not creating new json for every request, only for test if use fixed json data to simulate non-alloc new byte-array !!! - await http.Slient.Send(OnlyUsedForTestNonAllocJson); + akaJson.Text2Json(JsonModel, out ReadOnlyMemory json); + await http.Slient.Send(json); } public override ValueTask SendDb(IHttpContext http) { diff --git a/frameworks/CSharp/akazawayun.pro/src/AkazawaYun.Benchmark.Platform/Program.cs b/frameworks/CSharp/akazawayun.pro/src/AkazawaYun.Benchmark.Platform/Program.cs index 9be953769c4..dd39350435f 100644 --- a/frameworks/CSharp/akazawayun.pro/src/AkazawaYun.Benchmark.Platform/Program.cs +++ b/frameworks/CSharp/akazawayun.pro/src/AkazawaYun.Benchmark.Platform/Program.cs @@ -8,7 +8,7 @@ class Program static Program() { - akaLog.War("AkazawaYun.PRO 平台压力测试特供版 ver2025.11.3, 只支持 /plaintext 和 /json"); + akaLog.War("AkazawaYun.PRO 平台压力测试特供版 ver2026.1.15, 只支持 /plaintext 和 /json"); akaJson.Config(AotJsonContext.Default); builder = akaWebBuilder.Shared.Build(new MyBenchmarkReceptor()); } From 7015266ad3a8fd219dd52713f1087201f82ea0a3 Mon Sep 17 00:00:00 2001 From: AkazawaYun <408193813@qq.com> Date: Sun, 18 Jan 2026 19:29:48 +0800 Subject: [PATCH 34/50] update api version. --- .../AkazawaYun.Benchmark.WebApi.csproj | 2 +- .../src/AkazawaYun.Benchmark.WebApi/Mysql.cs | 2 +- .../AkazawaYun.Benchmark.WebApi/Program.cs | 34 +++++++++---------- .../WorldService.cs | 4 +-- 4 files changed, 21 insertions(+), 21 deletions(-) diff --git a/frameworks/CSharp/akazawayun.pro/src/AkazawaYun.Benchmark.WebApi/AkazawaYun.Benchmark.WebApi.csproj b/frameworks/CSharp/akazawayun.pro/src/AkazawaYun.Benchmark.WebApi/AkazawaYun.Benchmark.WebApi.csproj index 452b23e493c..82fa9321ab4 100644 --- a/frameworks/CSharp/akazawayun.pro/src/AkazawaYun.Benchmark.WebApi/AkazawaYun.Benchmark.WebApi.csproj +++ b/frameworks/CSharp/akazawayun.pro/src/AkazawaYun.Benchmark.WebApi/AkazawaYun.Benchmark.WebApi.csproj @@ -15,7 +15,7 @@ - + diff --git a/frameworks/CSharp/akazawayun.pro/src/AkazawaYun.Benchmark.WebApi/Mysql.cs b/frameworks/CSharp/akazawayun.pro/src/AkazawaYun.Benchmark.WebApi/Mysql.cs index 049af6e21f3..6ecde06eaa1 100644 --- a/frameworks/CSharp/akazawayun.pro/src/AkazawaYun.Benchmark.WebApi/Mysql.cs +++ b/frameworks/CSharp/akazawayun.pro/src/AkazawaYun.Benchmark.WebApi/Mysql.cs @@ -4,7 +4,7 @@ namespace AkazawaYun.Benchmark.WebApi; -class Mysql : akzDbFactory +class Mysql : akaDbFactory { protected override DbConnection NewConnection() => new MySqlConnection(ConString); } diff --git a/frameworks/CSharp/akazawayun.pro/src/AkazawaYun.Benchmark.WebApi/Program.cs b/frameworks/CSharp/akazawayun.pro/src/AkazawaYun.Benchmark.WebApi/Program.cs index ab7234e6f72..7ffd39f9acb 100644 --- a/frameworks/CSharp/akazawayun.pro/src/AkazawaYun.Benchmark.WebApi/Program.cs +++ b/frameworks/CSharp/akazawayun.pro/src/AkazawaYun.Benchmark.WebApi/Program.cs @@ -7,23 +7,23 @@ namespace AkazawaYun.Benchmark.WebApi; class Program : IPostFunctionWrapper { - static readonly akzWebBuilder builder; - static readonly akzDbFactory mysql; + static readonly akaWebBuilder builder; + static readonly akaDbFactory mysql; const int port = 8080; static Program() { - akzJson.Config(null, AotJsonContext.Default); - builder = akzWebBuilder.Shared.SetPort(port).SetDev() - .Add(() => null) + akaJson.Config(null, AotJsonContext.Default); + builder = akaWebBuilder.Shared.SetPort(port).SetDev() + .Add(() => null) .Build() - .Config(lis => lis.LogLevel = 0) - .Config(itc => + .Config(lis => lis.LogLevel = 0) + .Config(itc => { itc.ClearInterceptor(); - itc.AddInterceptor(new akzWebInterceptorAsPost()); + itc.AddInterceptor(new akaWebInterceptorAsPost()); }); - mysql = new akzDbBuilderII() + mysql = new akaDbBuilderII() .SetServer("tfb-database") //.SetServer("localhost:3306") .SetUser("benchmarkdbuser") @@ -39,15 +39,15 @@ static async Task Main() { await builder.Launch(); - akzLog.Inf("[API SELF-TEST]"); + akaLog.Inf("[API SELF-TEST]"); string url = $"http://localhost:{port}/plaintext"; - akzLog.Inf(" REQ URL :" + url); - string res = await akzHttpClient.Shared.Get(url).FetchString(); - akzLog.Inf(" RES LEN :" + res.Length); - akzLog.Inf(" RES BODY:" + res); - akzLog.Inf("[OK, I WORK FINE]"); + akaLog.Inf(" REQ URL :" + url); + string res = await akaHttpClient.Shared.Get(url).FetchString(); + akaLog.Inf(" RES LEN :" + res.Length); + akaLog.Inf(" RES BODY:" + res); + akaLog.Inf("[OK, I WORK FINE]"); - akzLog.Default = akzLog.Output.NoneButWar; + akaLog.Default = akaLog.Output.NoneButWar; await Task.Delay(-1); } @@ -102,7 +102,7 @@ static int ParseCount(string queries) } -public class akzWebInterceptorAsPost : WebInterceptor +public class akaWebInterceptorAsPost : WebInterceptor { public override ValueTask Intercept(IHttpContext http) { diff --git a/frameworks/CSharp/akazawayun.pro/src/AkazawaYun.Benchmark.WebApi/WorldService.cs b/frameworks/CSharp/akazawayun.pro/src/AkazawaYun.Benchmark.WebApi/WorldService.cs index 8f996368ac5..f94bd749ba5 100644 --- a/frameworks/CSharp/akazawayun.pro/src/AkazawaYun.Benchmark.WebApi/WorldService.cs +++ b/frameworks/CSharp/akazawayun.pro/src/AkazawaYun.Benchmark.WebApi/WorldService.cs @@ -6,13 +6,13 @@ class WorldService { static readonly int @id; // SELECT id, randomNumber FROM world WHERE id=@id ; - public static readonly string SqlSelect = akzSqlinq.Query().Select(m => new + public static readonly string SqlSelect = akaSqlinq.Query().Select(m => new { m.id, m.randomNumber, }).Where(m => m.id == @id).Build(); // UPDATE world SET randomNumber=@randomNumber WHERE id=@id ; - public static readonly string SqlUpdate = akzSqlinq.Update().Set(m => new() + public static readonly string SqlUpdate = akaSqlinq.Update().Set(m => new() { randomNumber = m.randomNumber, }).Where(m => m.id == @id).Build(); From d9b94d52261b45cfcf02e9016b95e18dfcba3ad7 Mon Sep 17 00:00:00 2001 From: AkazawaYun <408193813@qq.com> Date: Sun, 18 Jan 2026 20:46:59 +0800 Subject: [PATCH 35/50] temperorly close db test to find fail reason.. --- frameworks/CSharp/akazawayun.pro/benchmark_config.json | 3 --- 1 file changed, 3 deletions(-) diff --git a/frameworks/CSharp/akazawayun.pro/benchmark_config.json b/frameworks/CSharp/akazawayun.pro/benchmark_config.json index c9655a9f9c9..e316d80c500 100644 --- a/frameworks/CSharp/akazawayun.pro/benchmark_config.json +++ b/frameworks/CSharp/akazawayun.pro/benchmark_config.json @@ -8,9 +8,6 @@ "webserver": "akazawayun.pro", "plaintext_url": "/plaintext", "json_url": "/json", - "db_url": "/db", - "query_url": "/queries?queries=", - "update_url": "/updates?queries=", "port": 8080, "classification": "Micro", "approach": "Realistic", From 6029eb8a12e06aeb4fb74a186d05d9b6f6990f43 Mon Sep 17 00:00:00 2001 From: AkazawaYun <408193813@qq.com> Date: Sun, 18 Jan 2026 20:52:20 +0800 Subject: [PATCH 36/50] try to update mysql version..?? --- frameworks/CSharp/akazawayun.pro/benchmark_config.json | 3 +++ .../AkazawaYun.Benchmark.WebApi.csproj | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/frameworks/CSharp/akazawayun.pro/benchmark_config.json b/frameworks/CSharp/akazawayun.pro/benchmark_config.json index e316d80c500..c9655a9f9c9 100644 --- a/frameworks/CSharp/akazawayun.pro/benchmark_config.json +++ b/frameworks/CSharp/akazawayun.pro/benchmark_config.json @@ -8,6 +8,9 @@ "webserver": "akazawayun.pro", "plaintext_url": "/plaintext", "json_url": "/json", + "db_url": "/db", + "query_url": "/queries?queries=", + "update_url": "/updates?queries=", "port": 8080, "classification": "Micro", "approach": "Realistic", diff --git a/frameworks/CSharp/akazawayun.pro/src/AkazawaYun.Benchmark.WebApi/AkazawaYun.Benchmark.WebApi.csproj b/frameworks/CSharp/akazawayun.pro/src/AkazawaYun.Benchmark.WebApi/AkazawaYun.Benchmark.WebApi.csproj index 82fa9321ab4..04082d9b4c5 100644 --- a/frameworks/CSharp/akazawayun.pro/src/AkazawaYun.Benchmark.WebApi/AkazawaYun.Benchmark.WebApi.csproj +++ b/frameworks/CSharp/akazawayun.pro/src/AkazawaYun.Benchmark.WebApi/AkazawaYun.Benchmark.WebApi.csproj @@ -16,7 +16,7 @@ - + From 2005f74ad7cd401c03bd056c944538286ed81252 Mon Sep 17 00:00:00 2001 From: AkazawaYun <408193813@qq.com> Date: Sun, 18 Jan 2026 21:01:23 +0800 Subject: [PATCH 37/50] = =+ why db failed.. --- frameworks/CSharp/akazawayun.pro/benchmark_config.json | 1 - .../AkazawaYun.Benchmark.WebApi.csproj | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/frameworks/CSharp/akazawayun.pro/benchmark_config.json b/frameworks/CSharp/akazawayun.pro/benchmark_config.json index c9655a9f9c9..fdb4dbbfdf7 100644 --- a/frameworks/CSharp/akazawayun.pro/benchmark_config.json +++ b/frameworks/CSharp/akazawayun.pro/benchmark_config.json @@ -8,7 +8,6 @@ "webserver": "akazawayun.pro", "plaintext_url": "/plaintext", "json_url": "/json", - "db_url": "/db", "query_url": "/queries?queries=", "update_url": "/updates?queries=", "port": 8080, diff --git a/frameworks/CSharp/akazawayun.pro/src/AkazawaYun.Benchmark.WebApi/AkazawaYun.Benchmark.WebApi.csproj b/frameworks/CSharp/akazawayun.pro/src/AkazawaYun.Benchmark.WebApi/AkazawaYun.Benchmark.WebApi.csproj index 04082d9b4c5..82fa9321ab4 100644 --- a/frameworks/CSharp/akazawayun.pro/src/AkazawaYun.Benchmark.WebApi/AkazawaYun.Benchmark.WebApi.csproj +++ b/frameworks/CSharp/akazawayun.pro/src/AkazawaYun.Benchmark.WebApi/AkazawaYun.Benchmark.WebApi.csproj @@ -16,7 +16,7 @@ - + From 28cee0b26171f0a2cd754369c17c3a6db701945a Mon Sep 17 00:00:00 2001 From: AkazawaYun <408193813@qq.com> Date: Sun, 18 Jan 2026 21:06:39 +0800 Subject: [PATCH 38/50] revert mysql version , 9.5.0 is still bad... --- .../src/AkazawaYun.Benchmark.WebApi/Program.cs | 18 +++++------------- 1 file changed, 5 insertions(+), 13 deletions(-) diff --git a/frameworks/CSharp/akazawayun.pro/src/AkazawaYun.Benchmark.WebApi/Program.cs b/frameworks/CSharp/akazawayun.pro/src/AkazawaYun.Benchmark.WebApi/Program.cs index 7ffd39f9acb..a064ce243b1 100644 --- a/frameworks/CSharp/akazawayun.pro/src/AkazawaYun.Benchmark.WebApi/Program.cs +++ b/frameworks/CSharp/akazawayun.pro/src/AkazawaYun.Benchmark.WebApi/Program.cs @@ -2,6 +2,7 @@ using AkazawaYun.AOT; using AkazawaYun.PRO7; +using AkazawaYun.PRO7.AkazawaYunWebInterceptor; namespace AkazawaYun.Benchmark.WebApi; @@ -21,15 +22,15 @@ static Program() .Config(itc => { itc.ClearInterceptor(); - itc.AddInterceptor(new akaWebInterceptorAsPost()); + itc.AddInterceptor(new akaWebInterceptorAllAsPost()); }); mysql = new akaDbBuilderII() .SetServer("tfb-database") - //.SetServer("localhost:3306") .SetUser("benchmarkdbuser") - //.SetUser("root") .SetPwd("benchmarkdbpass") - //.SetPwd("123456") + //.SetServer("localhost:3306") + //.SetUser("root") + //.SetPwd("1u23456") .SetDatabase("hello_world") .SetCharset() .SetOtherset() @@ -101,12 +102,3 @@ static int ParseCount(string queries) } } - -public class akaWebInterceptorAsPost : WebInterceptor -{ - public override ValueTask Intercept(IHttpContext http) - { - http.Method = "POST"; - return InterceptorHttpRes.No(); - } -} From dc2725f467bbd717463181dcc36e7a6b7e4124e3 Mon Sep 17 00:00:00 2001 From: AkazawaYun <408193813@qq.com> Date: Sun, 18 Jan 2026 21:16:09 +0800 Subject: [PATCH 39/50] = =b test --- .../akazawayun.pro/src/AkazawaYun.Benchmark.WebApi/Program.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/frameworks/CSharp/akazawayun.pro/src/AkazawaYun.Benchmark.WebApi/Program.cs b/frameworks/CSharp/akazawayun.pro/src/AkazawaYun.Benchmark.WebApi/Program.cs index a064ce243b1..2aa73dd6f3c 100644 --- a/frameworks/CSharp/akazawayun.pro/src/AkazawaYun.Benchmark.WebApi/Program.cs +++ b/frameworks/CSharp/akazawayun.pro/src/AkazawaYun.Benchmark.WebApi/Program.cs @@ -30,10 +30,10 @@ static Program() .SetPwd("benchmarkdbpass") //.SetServer("localhost:3306") //.SetUser("root") - //.SetPwd("1u23456") + //.SetPwd("123456") .SetDatabase("hello_world") .SetCharset() - .SetOtherset() + .SetOtherset("Pooling=true;MaximumPoolSize=32767;SslMode=none;AllowPublicKeyRetrieval=true;") .Build(); } static async Task Main() From 41c001433b2aa50188858416630ec86ed0191271 Mon Sep 17 00:00:00 2001 From: AkazawaYun <408193813@qq.com> Date: Sun, 18 Jan 2026 21:22:12 +0800 Subject: [PATCH 40/50] yahari...db-con-pool is full!!!....btw add LIMIT into sql. --- .../AkazawaYun.Benchmark.WebApi/WorldService.cs | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/frameworks/CSharp/akazawayun.pro/src/AkazawaYun.Benchmark.WebApi/WorldService.cs b/frameworks/CSharp/akazawayun.pro/src/AkazawaYun.Benchmark.WebApi/WorldService.cs index f94bd749ba5..c68670ff8d9 100644 --- a/frameworks/CSharp/akazawayun.pro/src/AkazawaYun.Benchmark.WebApi/WorldService.cs +++ b/frameworks/CSharp/akazawayun.pro/src/AkazawaYun.Benchmark.WebApi/WorldService.cs @@ -5,13 +5,13 @@ namespace AkazawaYun.Benchmark.WebApi; class WorldService { static readonly int @id; - // SELECT id, randomNumber FROM world WHERE id=@id ; - public static readonly string SqlSelect = akaSqlinq.Query().Select(m => new - { - m.id, - m.randomNumber, - }).Where(m => m.id == @id).Build(); - // UPDATE world SET randomNumber=@randomNumber WHERE id=@id ; + public static readonly string SqlSelect = "SELECT id, randomNumber FROM world WHERE id=@id LIMIT 1 ;"; + //public static readonly string SqlSelect = akaSqlinq.Query().Select(m => new + //{ + // m.id, + // m.randomNumber, + //}).Where(m => m.id == @id).Build(); + //public static readonly string SqlUpdate = "UPDATE world SET randomNumber=@randomNumber WHERE id=@id ;"; public static readonly string SqlUpdate = akaSqlinq.Update().Set(m => new() { randomNumber = m.randomNumber, From 4feeede3bd8554a7083acec80abcdbcf052314d6 Mon Sep 17 00:00:00 2001 From: AkazawaYun <408193813@qq.com> Date: Sun, 18 Jan 2026 21:44:55 +0800 Subject: [PATCH 41/50] try to decrease extra query.? --- .../src/AkazawaYun.Benchmark.WebApi/Program.cs | 14 +++++++------- .../WorldService.cs | 18 +++++++++--------- 2 files changed, 16 insertions(+), 16 deletions(-) diff --git a/frameworks/CSharp/akazawayun.pro/src/AkazawaYun.Benchmark.WebApi/Program.cs b/frameworks/CSharp/akazawayun.pro/src/AkazawaYun.Benchmark.WebApi/Program.cs index 2aa73dd6f3c..aa4235a6e1b 100644 --- a/frameworks/CSharp/akazawayun.pro/src/AkazawaYun.Benchmark.WebApi/Program.cs +++ b/frameworks/CSharp/akazawayun.pro/src/AkazawaYun.Benchmark.WebApi/Program.cs @@ -62,8 +62,8 @@ static async Task Main() //[WebFunctionAopTry] public static async Task db() { - await using IDb con = await mysql.Connect(); - world obj = await WorldService.GetRandomWorld(con); + //await using IDb con = await mysql.Connect(); + world obj = await WorldService.GetRandomWorld(mysql); return obj; } //[WebFunctionAopTry] @@ -71,8 +71,8 @@ public static async Task queries(string queries) { int count = ParseCount(queries); - await using IDb con = await mysql.Connect(); - world[] lst = await WorldService.GetWorlds(con, count); + //await using IDb con = await mysql.Connect(); + world[] lst = await WorldService.GetWorlds(mysql, count); return lst; } //[WebFunctionAopTry] @@ -80,13 +80,13 @@ public static async Task updates(string queries) { int count = ParseCount(queries); - await using IDb con = await mysql.Connect(); - world[] lst = await WorldService.GetWorlds(con, count); + //await using IDb con = await mysql.Connect(); + world[] lst = await WorldService.GetWorlds(mysql, count); foreach (world obj in lst) obj.randomNumber = Random.Shared.Next(1, 10001); - await WorldService.SaveWorlds(con, lst); + await WorldService.SaveWorlds(mysql, lst); return lst; } diff --git a/frameworks/CSharp/akazawayun.pro/src/AkazawaYun.Benchmark.WebApi/WorldService.cs b/frameworks/CSharp/akazawayun.pro/src/AkazawaYun.Benchmark.WebApi/WorldService.cs index c68670ff8d9..ecb448f0ebd 100644 --- a/frameworks/CSharp/akazawayun.pro/src/AkazawaYun.Benchmark.WebApi/WorldService.cs +++ b/frameworks/CSharp/akazawayun.pro/src/AkazawaYun.Benchmark.WebApi/WorldService.cs @@ -5,12 +5,12 @@ namespace AkazawaYun.Benchmark.WebApi; class WorldService { static readonly int @id; - public static readonly string SqlSelect = "SELECT id, randomNumber FROM world WHERE id=@id LIMIT 1 ;"; - //public static readonly string SqlSelect = akaSqlinq.Query().Select(m => new - //{ - // m.id, - // m.randomNumber, - //}).Where(m => m.id == @id).Build(); + //public static readonly string SqlSelect = "SELECT id, randomNumber FROM world WHERE id=@id LIMIT 1 ;"; + public static readonly string SqlSelect = akaSqlinq.Query().Select(m => new + { + m.id, + m.randomNumber, + }).Where(m => m.id == @id).Build(); //public static readonly string SqlUpdate = "UPDATE world SET randomNumber=@randomNumber WHERE id=@id ;"; public static readonly string SqlUpdate = akaSqlinq.Update().Set(m => new() { @@ -18,7 +18,7 @@ class WorldService }).Where(m => m.id == @id).Build(); - public static async Task GetRandomWorld(IDb con, IDictionary? shared = null) + public static async Task GetRandomWorld(akaDbFactory con, IDictionary? shared = null) { int id = Random.Shared.Next(1, 10001); shared ??= new DpSingleBuilder().Build(); @@ -27,7 +27,7 @@ public static async Task GetRandomWorld(IDb con, IDictionary GetWorlds(IDb con, int count) + public static async Task GetWorlds(akaDbFactory con, int count) { world[] lst = new world[count]; var dp = new DpSingleBuilder().Build(); @@ -38,7 +38,7 @@ public static async Task GetWorlds(IDb con, int count) } return lst; } - public static async Task SaveWorlds(IDb con, world[] lst) + public static async Task SaveWorlds(akaDbFactory con, world[] lst) { await con.Execute(SqlUpdate, lst.ToDp()); } From 37dea0f7d6929590f691233d66f73b751b311c04 Mon Sep 17 00:00:00 2001 From: AkazawaYun <408193813@qq.com> Date: Sun, 18 Jan 2026 21:50:13 +0800 Subject: [PATCH 42/50] give up...revert why ?: WARN for http://tfb-server:8080/queries?queries=20 11432 executed queries in the database instead of 10240 expected. This number is excessively high. --- .../src/AkazawaYun.Benchmark.WebApi/Program.cs | 14 +++++++------- .../AkazawaYun.Benchmark.WebApi/WorldService.cs | 6 +++--- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/frameworks/CSharp/akazawayun.pro/src/AkazawaYun.Benchmark.WebApi/Program.cs b/frameworks/CSharp/akazawayun.pro/src/AkazawaYun.Benchmark.WebApi/Program.cs index aa4235a6e1b..2aa73dd6f3c 100644 --- a/frameworks/CSharp/akazawayun.pro/src/AkazawaYun.Benchmark.WebApi/Program.cs +++ b/frameworks/CSharp/akazawayun.pro/src/AkazawaYun.Benchmark.WebApi/Program.cs @@ -62,8 +62,8 @@ static async Task Main() //[WebFunctionAopTry] public static async Task db() { - //await using IDb con = await mysql.Connect(); - world obj = await WorldService.GetRandomWorld(mysql); + await using IDb con = await mysql.Connect(); + world obj = await WorldService.GetRandomWorld(con); return obj; } //[WebFunctionAopTry] @@ -71,8 +71,8 @@ public static async Task queries(string queries) { int count = ParseCount(queries); - //await using IDb con = await mysql.Connect(); - world[] lst = await WorldService.GetWorlds(mysql, count); + await using IDb con = await mysql.Connect(); + world[] lst = await WorldService.GetWorlds(con, count); return lst; } //[WebFunctionAopTry] @@ -80,13 +80,13 @@ public static async Task updates(string queries) { int count = ParseCount(queries); - //await using IDb con = await mysql.Connect(); - world[] lst = await WorldService.GetWorlds(mysql, count); + await using IDb con = await mysql.Connect(); + world[] lst = await WorldService.GetWorlds(con, count); foreach (world obj in lst) obj.randomNumber = Random.Shared.Next(1, 10001); - await WorldService.SaveWorlds(mysql, lst); + await WorldService.SaveWorlds(con, lst); return lst; } diff --git a/frameworks/CSharp/akazawayun.pro/src/AkazawaYun.Benchmark.WebApi/WorldService.cs b/frameworks/CSharp/akazawayun.pro/src/AkazawaYun.Benchmark.WebApi/WorldService.cs index ecb448f0ebd..83f11c89259 100644 --- a/frameworks/CSharp/akazawayun.pro/src/AkazawaYun.Benchmark.WebApi/WorldService.cs +++ b/frameworks/CSharp/akazawayun.pro/src/AkazawaYun.Benchmark.WebApi/WorldService.cs @@ -18,7 +18,7 @@ class WorldService }).Where(m => m.id == @id).Build(); - public static async Task GetRandomWorld(akaDbFactory con, IDictionary? shared = null) + public static async Task GetRandomWorld(IDb con, IDictionary? shared = null) { int id = Random.Shared.Next(1, 10001); shared ??= new DpSingleBuilder().Build(); @@ -27,7 +27,7 @@ public static async Task GetRandomWorld(akaDbFactory con, IDictionary GetWorlds(akaDbFactory con, int count) + public static async Task GetWorlds(IDb con, int count) { world[] lst = new world[count]; var dp = new DpSingleBuilder().Build(); @@ -38,7 +38,7 @@ public static async Task GetWorlds(akaDbFactory con, int count) } return lst; } - public static async Task SaveWorlds(akaDbFactory con, world[] lst) + public static async Task SaveWorlds(IDb con, world[] lst) { await con.Execute(SqlUpdate, lst.ToDp()); } From 17e8f3a92aed0d233f869a58d3a3182ee78074b9 Mon Sep 17 00:00:00 2001 From: AkazawaYun <408193813@qq.com> Date: Sun, 18 Jan 2026 21:57:09 +0800 Subject: [PATCH 43/50] someone was forgotten...e --- frameworks/CSharp/akazawayun.pro/benchmark_config.json | 1 + 1 file changed, 1 insertion(+) diff --git a/frameworks/CSharp/akazawayun.pro/benchmark_config.json b/frameworks/CSharp/akazawayun.pro/benchmark_config.json index fdb4dbbfdf7..c9655a9f9c9 100644 --- a/frameworks/CSharp/akazawayun.pro/benchmark_config.json +++ b/frameworks/CSharp/akazawayun.pro/benchmark_config.json @@ -8,6 +8,7 @@ "webserver": "akazawayun.pro", "plaintext_url": "/plaintext", "json_url": "/json", + "db_url": "/db", "query_url": "/queries?queries=", "update_url": "/updates?queries=", "port": 8080, From ae55ff0e0f9ec6bfd2c42cbcc428d6395102e830 Mon Sep 17 00:00:00 2001 From: AkazawaYun <408193813@qq.com> Date: Tue, 20 Jan 2026 20:43:13 +0800 Subject: [PATCH 44/50] split platform test. --- .../akazawayun.pro/AkazawaYun.Benchmark.sln | 6 +++ frameworks/CSharp/akazawayun.pro/README.md | 3 +- .../akazawayun.pro-core.dockerfile | 13 ++++++ .../akazawayun.pro/benchmark_config.json | 18 +++++++- .../AkazawaYun.Benchmark.Core.csproj | 21 +++++++++ .../src/AkazawaYun.Benchmark.Core/Model.cs | 14 ++++++ .../MyBenchmarkReceptor.cs | 46 +++++++++++++++++++ .../src/AkazawaYun.Benchmark.Core/Program.cs | 20 ++++++++ .../AkazawaYun.Benchmark.Platform.csproj | 2 +- .../AkazawaYun.Benchmark.Platform/Program.cs | 25 +++++++++- .../AkazawaYun.Benchmark.WebApi/Program.cs | 8 ++-- 11 files changed, 167 insertions(+), 9 deletions(-) create mode 100644 frameworks/CSharp/akazawayun.pro/akazawayun.pro-core.dockerfile create mode 100644 frameworks/CSharp/akazawayun.pro/src/AkazawaYun.Benchmark.Core/AkazawaYun.Benchmark.Core.csproj create mode 100644 frameworks/CSharp/akazawayun.pro/src/AkazawaYun.Benchmark.Core/Model.cs create mode 100644 frameworks/CSharp/akazawayun.pro/src/AkazawaYun.Benchmark.Core/MyBenchmarkReceptor.cs create mode 100644 frameworks/CSharp/akazawayun.pro/src/AkazawaYun.Benchmark.Core/Program.cs diff --git a/frameworks/CSharp/akazawayun.pro/AkazawaYun.Benchmark.sln b/frameworks/CSharp/akazawayun.pro/AkazawaYun.Benchmark.sln index 66c1850c7f3..36906654935 100644 --- a/frameworks/CSharp/akazawayun.pro/AkazawaYun.Benchmark.sln +++ b/frameworks/CSharp/akazawayun.pro/AkazawaYun.Benchmark.sln @@ -7,6 +7,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AkazawaYun.Benchmark.WebApi EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AkazawaYun.Benchmark.Platform", "src\AkazawaYun.Benchmark.Platform\AkazawaYun.Benchmark.Platform.csproj", "{E7CA7DF7-F4AB-47EC-BF2B-1148058CDF43}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AkazawaYun.Benchmark.Core", "src\AkazawaYun.Benchmark.Core\AkazawaYun.Benchmark.Core.csproj", "{2956CEE4-699F-7365-D58D-B017FB03C347}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -21,6 +23,10 @@ Global {E7CA7DF7-F4AB-47EC-BF2B-1148058CDF43}.Debug|Any CPU.Build.0 = Debug|Any CPU {E7CA7DF7-F4AB-47EC-BF2B-1148058CDF43}.Release|Any CPU.ActiveCfg = Release|Any CPU {E7CA7DF7-F4AB-47EC-BF2B-1148058CDF43}.Release|Any CPU.Build.0 = Release|Any CPU + {2956CEE4-699F-7365-D58D-B017FB03C347}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {2956CEE4-699F-7365-D58D-B017FB03C347}.Debug|Any CPU.Build.0 = Debug|Any CPU + {2956CEE4-699F-7365-D58D-B017FB03C347}.Release|Any CPU.ActiveCfg = Release|Any CPU + {2956CEE4-699F-7365-D58D-B017FB03C347}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/frameworks/CSharp/akazawayun.pro/README.md b/frameworks/CSharp/akazawayun.pro/README.md index 0388851ec6a..46d1b4817a2 100644 --- a/frameworks/CSharp/akazawayun.pro/README.md +++ b/frameworks/CSharp/akazawayun.pro/README.md @@ -1 +1,2 @@ -AkazawaYun.PRO(https://akazawayun.cn/#akzLearning#%E5%BF%AB%E9%80%9F%E5%85%A5%E9%97%A8) +AkazawaYun.PRO is the happiest web framework in the universe. +Readme(https://akazawayun.cn/#akzLearning#%E5%BF%AB%E9%80%9F%E5%85%A5%E9%97%A8) diff --git a/frameworks/CSharp/akazawayun.pro/akazawayun.pro-core.dockerfile b/frameworks/CSharp/akazawayun.pro/akazawayun.pro-core.dockerfile new file mode 100644 index 00000000000..db44452d72a --- /dev/null +++ b/frameworks/CSharp/akazawayun.pro/akazawayun.pro-core.dockerfile @@ -0,0 +1,13 @@ +# 生成 +FROM mcr.microsoft.com/dotnet/sdk:9.0 AS publish +WORKDIR /app +COPY src/AkazawaYun.Benchmark.Core . +RUN dotnet publish -c Release -o /app/publish + +# 运行 +FROM mcr.microsoft.com/dotnet/sdk:9.0 AS runtime +WORKDIR /app +COPY --from=publish /app/publish . + +EXPOSE 8080 +ENTRYPOINT ["dotnet", "AkazawaYun.Benchmark.Core.dll"] diff --git a/frameworks/CSharp/akazawayun.pro/benchmark_config.json b/frameworks/CSharp/akazawayun.pro/benchmark_config.json index c9655a9f9c9..59797611aa1 100644 --- a/frameworks/CSharp/akazawayun.pro/benchmark_config.json +++ b/frameworks/CSharp/akazawayun.pro/benchmark_config.json @@ -38,7 +38,23 @@ "os": "Linux", "database_os": "Linux", "notes": "" + }, + "core": { + "display_name": "akazawayun.pro [core]", + "framework": "akazawayun.pro", + "webserver": "akazawayun.pro", + "plaintext_url": "/plaintext", + "json_url": "/json", + "port": 8080, + "classification": "Platform", + "approach": "Realistic", + "platform": ".NET", + "language": "C#", + "flavor": "CoreCLR", + "os": "Linux", + "database_os": "Linux", + "notes": "" } } ] -} +} \ No newline at end of file diff --git a/frameworks/CSharp/akazawayun.pro/src/AkazawaYun.Benchmark.Core/AkazawaYun.Benchmark.Core.csproj b/frameworks/CSharp/akazawayun.pro/src/AkazawaYun.Benchmark.Core/AkazawaYun.Benchmark.Core.csproj new file mode 100644 index 00000000000..e1773f668f1 --- /dev/null +++ b/frameworks/CSharp/akazawayun.pro/src/AkazawaYun.Benchmark.Core/AkazawaYun.Benchmark.Core.csproj @@ -0,0 +1,21 @@ + + + + Exe + net9.0 + enable + enable + true + false + + + + true + true + + + + + + + diff --git a/frameworks/CSharp/akazawayun.pro/src/AkazawaYun.Benchmark.Core/Model.cs b/frameworks/CSharp/akazawayun.pro/src/AkazawaYun.Benchmark.Core/Model.cs new file mode 100644 index 00000000000..574123c3697 --- /dev/null +++ b/frameworks/CSharp/akazawayun.pro/src/AkazawaYun.Benchmark.Core/Model.cs @@ -0,0 +1,14 @@ +#pragma warning disable IDE1006,CS8981 +using System.Text.Json.Serialization; + +namespace AkazawaYun.Benchmark.Platform; + + +[JsonSerializable(typeof(JsonModel))] +public partial class AotJsonContext : JsonSerializerContext { } + + +public class JsonModel +{ + public string? message { get; set; } +} diff --git a/frameworks/CSharp/akazawayun.pro/src/AkazawaYun.Benchmark.Core/MyBenchmarkReceptor.cs b/frameworks/CSharp/akazawayun.pro/src/AkazawaYun.Benchmark.Core/MyBenchmarkReceptor.cs new file mode 100644 index 00000000000..e1d173f7f38 --- /dev/null +++ b/frameworks/CSharp/akazawayun.pro/src/AkazawaYun.Benchmark.Core/MyBenchmarkReceptor.cs @@ -0,0 +1,46 @@ +using AkazawaYun.PRO7; + +namespace AkazawaYun.Benchmark.Platform; + +class MyBenchmarkReceptor : akaWebReceptorBenchmark +{ + readonly JsonModel JsonModel; + + public MyBenchmarkReceptor() + { + JsonModel = new() + { + message = "Hello, World!" + }; + } + + + public override async ValueTask SendJson(IHttpContext http) + { + await http.Slient.Send(DataJson_OnlyHeader); + + akaJson.Text2Json(JsonModel, out ReadOnlyMemory json); + await http.Slient.Send(json); + } + public override ValueTask SendDb(IHttpContext http) + { + throw new NotImplementedException(); + } + public override ValueTask SendQueries(IHttpContext http) + { + throw new NotImplementedException(); + } + public override ValueTask SendUpdates(IHttpContext http) + { + throw new NotImplementedException(); + } + public override ValueTask SendCachedQueries(IHttpContext http) + { + throw new NotImplementedException(); + } + public override ValueTask SendFortunes(IHttpContext http) + { + throw new NotImplementedException(); + } + +} diff --git a/frameworks/CSharp/akazawayun.pro/src/AkazawaYun.Benchmark.Core/Program.cs b/frameworks/CSharp/akazawayun.pro/src/AkazawaYun.Benchmark.Core/Program.cs new file mode 100644 index 00000000000..dd39350435f --- /dev/null +++ b/frameworks/CSharp/akazawayun.pro/src/AkazawaYun.Benchmark.Core/Program.cs @@ -0,0 +1,20 @@ +using AkazawaYun.PRO7; + +namespace AkazawaYun.Benchmark.Platform; + +class Program +{ + static readonly akaWebBuilder builder; + + static Program() + { + akaLog.War("AkazawaYun.PRO 平台压力测试特供版 ver2026.1.15, 只支持 /plaintext 和 /json"); + akaJson.Config(AotJsonContext.Default); + builder = akaWebBuilder.Shared.Build(new MyBenchmarkReceptor()); + } + static async Task Main() + { + await builder.Launch(); + await Task.Delay(-1); + } +} diff --git a/frameworks/CSharp/akazawayun.pro/src/AkazawaYun.Benchmark.Platform/AkazawaYun.Benchmark.Platform.csproj b/frameworks/CSharp/akazawayun.pro/src/AkazawaYun.Benchmark.Platform/AkazawaYun.Benchmark.Platform.csproj index e1773f668f1..a46900d8a8d 100644 --- a/frameworks/CSharp/akazawayun.pro/src/AkazawaYun.Benchmark.Platform/AkazawaYun.Benchmark.Platform.csproj +++ b/frameworks/CSharp/akazawayun.pro/src/AkazawaYun.Benchmark.Platform/AkazawaYun.Benchmark.Platform.csproj @@ -15,7 +15,7 @@ - + diff --git a/frameworks/CSharp/akazawayun.pro/src/AkazawaYun.Benchmark.Platform/Program.cs b/frameworks/CSharp/akazawayun.pro/src/AkazawaYun.Benchmark.Platform/Program.cs index dd39350435f..92b319622bd 100644 --- a/frameworks/CSharp/akazawayun.pro/src/AkazawaYun.Benchmark.Platform/Program.cs +++ b/frameworks/CSharp/akazawayun.pro/src/AkazawaYun.Benchmark.Platform/Program.cs @@ -1,20 +1,41 @@ using AkazawaYun.PRO7; +using AkazawaYun.PRO7.AkazawaYunWebInterceptor; namespace AkazawaYun.Benchmark.Platform; class Program { + const int port = 8080; static readonly akaWebBuilder builder; static Program() { akaLog.War("AkazawaYun.PRO 平台压力测试特供版 ver2026.1.15, 只支持 /plaintext 和 /json"); - akaJson.Config(AotJsonContext.Default); - builder = akaWebBuilder.Shared.Build(new MyBenchmarkReceptor()); + akaJson.Config(null, AotJsonContext.Default); + builder = akaWebBuilder.Shared.SetPort(port).SetDev(true) + .Add(() => new MyBenchmarkReceptor()) + .Add(() => new(port)) + .Build() + .Config(lis => lis.LogLevel = 0) + .Config(rcp => + { + rcp.ClearInterceptor(); + rcp.AddInterceptor(new akaWebInterceptorAllAsPost()); + }); } static async Task Main() { await builder.Launch(); + + akaLog.Inf("[API SELF-TEST]"); + string url = $"http://localhost:{port}/plaintext"; + akaLog.Inf(" REQ URL :" + url); + string res = await akaHttpClient.Shared.Get(url).FetchString(); + akaLog.Inf(" RES LEN :" + res.Length); + akaLog.Inf(" RES BODY:" + res); + akaLog.Inf("[OK, I WORK FINE]"); + + akaLog.Default = akaLog.Output.NoneButWar; await Task.Delay(-1); } } diff --git a/frameworks/CSharp/akazawayun.pro/src/AkazawaYun.Benchmark.WebApi/Program.cs b/frameworks/CSharp/akazawayun.pro/src/AkazawaYun.Benchmark.WebApi/Program.cs index 2aa73dd6f3c..75cc348a0c7 100644 --- a/frameworks/CSharp/akazawayun.pro/src/AkazawaYun.Benchmark.WebApi/Program.cs +++ b/frameworks/CSharp/akazawayun.pro/src/AkazawaYun.Benchmark.WebApi/Program.cs @@ -8,9 +8,9 @@ namespace AkazawaYun.Benchmark.WebApi; class Program : IPostFunctionWrapper { + const int port = 8080; static readonly akaWebBuilder builder; static readonly akaDbFactory mysql; - const int port = 8080; static Program() { @@ -19,10 +19,10 @@ static Program() .Add(() => null) .Build() .Config(lis => lis.LogLevel = 0) - .Config(itc => + .Config(rcp => { - itc.ClearInterceptor(); - itc.AddInterceptor(new akaWebInterceptorAllAsPost()); + rcp.ClearInterceptor(); + rcp.AddInterceptor(new akaWebInterceptorAllAsPost()); }); mysql = new akaDbBuilderII() .SetServer("tfb-database") From d33c8dbd5d410a3674d942ad1aadad83fdf30093 Mon Sep 17 00:00:00 2001 From: AkazawaYun <408193813@qq.com> Date: Wed, 28 Jan 2026 21:17:12 +0800 Subject: [PATCH 45/50] update: json zero-alloc --- .../AkazawaYun.Benchmark.Core.csproj | 2 +- .../src/AkazawaYun.Benchmark.Core/MyBenchmarkReceptor.cs | 4 +--- .../akazawayun.pro/src/AkazawaYun.Benchmark.Core/Program.cs | 2 +- 3 files changed, 3 insertions(+), 5 deletions(-) diff --git a/frameworks/CSharp/akazawayun.pro/src/AkazawaYun.Benchmark.Core/AkazawaYun.Benchmark.Core.csproj b/frameworks/CSharp/akazawayun.pro/src/AkazawaYun.Benchmark.Core/AkazawaYun.Benchmark.Core.csproj index e1773f668f1..eab3b205bcd 100644 --- a/frameworks/CSharp/akazawayun.pro/src/AkazawaYun.Benchmark.Core/AkazawaYun.Benchmark.Core.csproj +++ b/frameworks/CSharp/akazawayun.pro/src/AkazawaYun.Benchmark.Core/AkazawaYun.Benchmark.Core.csproj @@ -15,7 +15,7 @@ - + diff --git a/frameworks/CSharp/akazawayun.pro/src/AkazawaYun.Benchmark.Core/MyBenchmarkReceptor.cs b/frameworks/CSharp/akazawayun.pro/src/AkazawaYun.Benchmark.Core/MyBenchmarkReceptor.cs index e1d173f7f38..ef8e022eb63 100644 --- a/frameworks/CSharp/akazawayun.pro/src/AkazawaYun.Benchmark.Core/MyBenchmarkReceptor.cs +++ b/frameworks/CSharp/akazawayun.pro/src/AkazawaYun.Benchmark.Core/MyBenchmarkReceptor.cs @@ -18,9 +18,7 @@ public MyBenchmarkReceptor() public override async ValueTask SendJson(IHttpContext http) { await http.Slient.Send(DataJson_OnlyHeader); - - akaJson.Text2Json(JsonModel, out ReadOnlyMemory json); - await http.Slient.Send(json); + akaJson.Text2Json(JsonModel, http.Slient.JsonSender); } public override ValueTask SendDb(IHttpContext http) { diff --git a/frameworks/CSharp/akazawayun.pro/src/AkazawaYun.Benchmark.Core/Program.cs b/frameworks/CSharp/akazawayun.pro/src/AkazawaYun.Benchmark.Core/Program.cs index dd39350435f..3a0f794ad2b 100644 --- a/frameworks/CSharp/akazawayun.pro/src/AkazawaYun.Benchmark.Core/Program.cs +++ b/frameworks/CSharp/akazawayun.pro/src/AkazawaYun.Benchmark.Core/Program.cs @@ -8,7 +8,7 @@ class Program static Program() { - akaLog.War("AkazawaYun.PRO 平台压力测试特供版 ver2026.1.15, 只支持 /plaintext 和 /json"); + akaLog.War("AkazawaYun.PRO 平台压力测试特供版 ver2026.1.28, 只支持 /plaintext 和 /json"); akaJson.Config(AotJsonContext.Default); builder = akaWebBuilder.Shared.Build(new MyBenchmarkReceptor()); } From 9a39c736abfebe375da395233437c5b3a51ca0fc Mon Sep 17 00:00:00 2001 From: AkazawaYun <408193813@qq.com> Date: Sat, 31 Jan 2026 15:43:13 +0800 Subject: [PATCH 46/50] add aot test. --- .../akazawayun.pro-core-aot.dockerfile | 13 +++++++++++++ .../CSharp/akazawayun.pro/benchmark_config.json | 16 ++++++++++++++++ 2 files changed, 29 insertions(+) create mode 100644 frameworks/CSharp/akazawayun.pro/akazawayun.pro-core-aot.dockerfile diff --git a/frameworks/CSharp/akazawayun.pro/akazawayun.pro-core-aot.dockerfile b/frameworks/CSharp/akazawayun.pro/akazawayun.pro-core-aot.dockerfile new file mode 100644 index 00000000000..6019f4f228d --- /dev/null +++ b/frameworks/CSharp/akazawayun.pro/akazawayun.pro-core-aot.dockerfile @@ -0,0 +1,13 @@ +# 生成 +FROM mcr.microsoft.com/dotnet/sdk:9.0 AS publish +WORKDIR /app +COPY src/AkazawaYun.Benchmark.Core . +RUN dotnet publish -c Release -o /app/publish /p:PublishAot=true /p:OptimizationPreference=Speed /p:GarbageCollectionAdaptationMode=0 + +# 运行 +FROM mcr.microsoft.com/dotnet/sdk:9.0 AS runtime +WORKDIR /app +COPY --from=publish /app/publish . + +EXPOSE 8080 +ENTRYPOINT ["dotnet", "AkazawaYun.Benchmark.Core.dll"] diff --git a/frameworks/CSharp/akazawayun.pro/benchmark_config.json b/frameworks/CSharp/akazawayun.pro/benchmark_config.json index 59797611aa1..5c74460b7a1 100644 --- a/frameworks/CSharp/akazawayun.pro/benchmark_config.json +++ b/frameworks/CSharp/akazawayun.pro/benchmark_config.json @@ -54,6 +54,22 @@ "os": "Linux", "database_os": "Linux", "notes": "" + }, + "core-aot": { + "display_name": "akazawayun.pro [core-aot]", + "framework": "akazawayun.pro", + "webserver": "akazawayun.pro", + "plaintext_url": "/plaintext", + "json_url": "/json", + "port": 8080, + "classification": "Platform", + "approach": "Realistic", + "platform": ".NET", + "language": "C#", + "flavor": "CoreCLR", + "os": "Linux", + "database_os": "Linux", + "notes": "" } } ] From 7b2bc6c1566a3ef1296891adbc70bc658a70fa24 Mon Sep 17 00:00:00 2001 From: AkazawaYun <408193813@qq.com> Date: Sat, 31 Jan 2026 15:54:07 +0800 Subject: [PATCH 47/50] add aot apt-get --- .../CSharp/akazawayun.pro/akazawayun.pro-core-aot.dockerfile | 2 ++ 1 file changed, 2 insertions(+) diff --git a/frameworks/CSharp/akazawayun.pro/akazawayun.pro-core-aot.dockerfile b/frameworks/CSharp/akazawayun.pro/akazawayun.pro-core-aot.dockerfile index 6019f4f228d..b9229ccbbf4 100644 --- a/frameworks/CSharp/akazawayun.pro/akazawayun.pro-core-aot.dockerfile +++ b/frameworks/CSharp/akazawayun.pro/akazawayun.pro-core-aot.dockerfile @@ -1,5 +1,7 @@ # 生成 FROM mcr.microsoft.com/dotnet/sdk:9.0 AS publish +RUN apt-get update +RUN apt-get -yqq install clang zlib1g-dev WORKDIR /app COPY src/AkazawaYun.Benchmark.Core . RUN dotnet publish -c Release -o /app/publish /p:PublishAot=true /p:OptimizationPreference=Speed /p:GarbageCollectionAdaptationMode=0 From 9ce44efeee75d7180d8e532d8f1926db40ad6a27 Mon Sep 17 00:00:00 2001 From: AkazawaYun <408193813@qq.com> Date: Sat, 31 Jan 2026 16:00:42 +0800 Subject: [PATCH 48/50] modify entrypoint --- .../CSharp/akazawayun.pro/akazawayun.pro-core-aot.dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frameworks/CSharp/akazawayun.pro/akazawayun.pro-core-aot.dockerfile b/frameworks/CSharp/akazawayun.pro/akazawayun.pro-core-aot.dockerfile index b9229ccbbf4..ae0991fce64 100644 --- a/frameworks/CSharp/akazawayun.pro/akazawayun.pro-core-aot.dockerfile +++ b/frameworks/CSharp/akazawayun.pro/akazawayun.pro-core-aot.dockerfile @@ -12,4 +12,4 @@ WORKDIR /app COPY --from=publish /app/publish . EXPOSE 8080 -ENTRYPOINT ["dotnet", "AkazawaYun.Benchmark.Core.dll"] +ENTRYPOINT ["./AkazawaYun.Benchmark.Core"] From 14d22ccabe6276d063f91906112f22e715bc37a3 Mon Sep 17 00:00:00 2001 From: AkazawaYun <408193813@qq.com> Date: Fri, 13 Feb 2026 20:36:26 +0800 Subject: [PATCH 49/50] update version. --- .../AkazawaYun.Benchmark.Core/AkazawaYun.Benchmark.Core.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frameworks/CSharp/akazawayun.pro/src/AkazawaYun.Benchmark.Core/AkazawaYun.Benchmark.Core.csproj b/frameworks/CSharp/akazawayun.pro/src/AkazawaYun.Benchmark.Core/AkazawaYun.Benchmark.Core.csproj index eab3b205bcd..745a6bd4d69 100644 --- a/frameworks/CSharp/akazawayun.pro/src/AkazawaYun.Benchmark.Core/AkazawaYun.Benchmark.Core.csproj +++ b/frameworks/CSharp/akazawayun.pro/src/AkazawaYun.Benchmark.Core/AkazawaYun.Benchmark.Core.csproj @@ -15,7 +15,7 @@ - + From 8b4a439db4436c547df44d0515c414233c40b415 Mon Sep 17 00:00:00 2001 From: AkazawaYun <408193813@qq.com> Date: Fri, 13 Feb 2026 23:50:53 +0800 Subject: [PATCH 50/50] add maintainer. --- frameworks/CSharp/akazawayun.pro/benchmark_config.json | 3 +++ 1 file changed, 3 insertions(+) diff --git a/frameworks/CSharp/akazawayun.pro/benchmark_config.json b/frameworks/CSharp/akazawayun.pro/benchmark_config.json index 5c74460b7a1..f8c262d74e0 100644 --- a/frameworks/CSharp/akazawayun.pro/benchmark_config.json +++ b/frameworks/CSharp/akazawayun.pro/benchmark_config.json @@ -1,5 +1,8 @@ { "framework": "akazawayun.pro", + "maintainers": [ + "AkazawaYun" + ], "tests": [ { "default": {