Skip to content
Merged

aa #41

Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
90 commits
Select commit Hold shift + click to select a range
afb6d8b
Inverno framework test
jkuhn1 Aug 18, 2021
04043d8
Remove unused code
jkuhn1 Aug 20, 2021
102d1cb
Optimization
jkuhn1 Aug 23, 2021
eec498e
remove db.sql
jkuhn1 Sep 6, 2021
6872c78
Upgrade to Inverno 1.2.2
jkuhn1 Sep 15, 2021
c76b94e
Merge branch 'TechEmpower:master' into master
jkuhn1 Oct 7, 2021
c421a9f
Merge branch 'TechEmpower:master' into master
jkuhn1 Feb 9, 2022
3a86f43
Upgrade to Inverno 1.4.1
jkuhn1 Feb 9, 2022
a516c0a
Update README.md
jkuhn1 Feb 9, 2022
8d543cd
Merge branch 'TechEmpower:master' into master
jkuhn1 Jan 19, 2024
09a63d4
Merge branch 'master' of https://github.com/jkuhn1/FrameworkBenchmarks
jkuhn1 Feb 6, 2024
4a500ea
Upgrade to Inverno 1.6.2
jkuhn1 Feb 6, 2024
93791a5
Add missing binutils when building docker images
jkuhn1 Feb 6, 2024
71af367
Fix inverno postgres CMD
jkuhn1 Feb 6, 2024
a443d58
Merge branch 'master' of https://github.com/jkuhn1/FrameworkBenchmarks
jkuhn1 Feb 22, 2024
0fc9945
Upgrade to Inverno 1.7.0
jkuhn1 Feb 22, 2024
df30990
update sisk to v0.16.2-beta1
CypherPotato Apr 9, 2024
69d6e8a
fix prev commit
CypherPotato Apr 9, 2024
768a99d
Merge branch 'TechEmpower:master' into master
jkuhn1 Apr 12, 2024
80a936e
Upgrade to Inverno 1.9.0 + make app resilient to DB connection loss
jkuhn1 Apr 12, 2024
4d4e53a
Merge branch 'TechEmpower:master' into master
jkuhn1 Apr 26, 2024
d1c9eba
Upgrade to Inverno 1.10.0 + minor changes
jkuhn1 Apr 26, 2024
b030977
update sisk version
CypherPotato Apr 28, 2024
758f8f9
Merge branch 'TechEmpower:master' into master
CypherPotato Apr 28, 2024
e23312d
Add Clace framework
akclace Jan 15, 2025
fb6834a
Add rage-sequel
rsamoilov Jan 15, 2025
7b5a501
Merge pull request #9537 from akclace/master
msmith-techempower Jan 16, 2025
294cc9a
Merge pull request #9539 from smartboot/master
msmith-techempower Jan 16, 2025
8434091
Bump mongoose from 8.8.3 to 8.9.5 in /frameworks/JavaScript/hapi
dependabot[bot] Jan 16, 2025
3eed80e
Bump mongoose from 8.8.3 to 8.9.5 in /frameworks/JavaScript/express
dependabot[bot] Jan 16, 2025
150aa67
Merge pull request #9542 from TechEmpower/dependabot/npm_and_yarn/fra…
github-actions[bot] Jan 16, 2025
4b5754e
Merge pull request #9541 from TechEmpower/dependabot/npm_and_yarn/fra…
github-actions[bot] Jan 16, 2025
9b0e1c3
Update connections count
rsamoilov Jan 16, 2025
111728f
[ruby/roda-sequel] Detect workers for Iodine
p8 Jan 16, 2025
bf45c1d
[ReactPHP] Add WyriHaximus as maintainer
WyriHaximus Jan 14, 2025
4541529
[ReactPHP] Handle uncaught errors by sending their error message as r…
WyriHaximus Jan 15, 2025
fc9852c
[ruby/rack] Detect workers for Iodine
p8 Jan 16, 2025
651b1bc
Remove json and plaintext tests to reduce test time
rsamoilov Jan 17, 2025
037cf93
Merge pull request #9544 from p8/roda-sequel/iodine-set-workers
msmith-techempower Jan 17, 2025
57be568
Merge pull request #9545 from p8/rack/iodine-set-workers2
msmith-techempower Jan 17, 2025
0a4c9c6
Merge pull request #9543 from rage-rb/add-rage-sequel
msmith-techempower Jan 17, 2025
f22bbb6
Merge pull request #9533 from WyriHaximus-labs/reactphp-add-wyrihaxim…
msmith-techempower Jan 17, 2025
087496e
[ReactPHP] Show any errors while handling requests
WyriHaximus Jan 13, 2025
d034338
[perl/feersum] bump dependency to fix pipelined plaintext test
vividsnow Jan 17, 2025
17cb029
Remove unnecessary file-exists checks.
Jan 18, 2025
7789fb6
[php] Reactphp add libuv variant
joanhey Jan 18, 2025
2c512a2
add a framework php/cyberphp
invalid-email-address Jan 18, 2025
a614fcf
Add libevent
joanhey Jan 18, 2025
0e431e4
add a framework php/cyberphp
invalid-email-address Jan 18, 2025
9a5a344
add a framework php/cyberphp
invalid-email-address Jan 18, 2025
22db038
Remove source code unrelated to testing
eoioer Jan 18, 2025
2441f1f
Remove files unrelated to benchmark
invalid-email-address Jan 18, 2025
f740043
[ruby/sinatra] Detect workers for Iodine
p8 Jan 19, 2025
d5f024c
Modify the test code to comply with the testing specifications
eoioer Jan 19, 2025
d13cfa8
[rails] Detect workers for Iodine
p8 Jan 19, 2025
65fe69f
Merge branch 'TechEmpower:master' into master
jkuhn1 Jan 20, 2025
b1928b2
Inverno upgrade to 1.12.0 + misc performance improvements
jkuhn1 Jan 20, 2025
63e664e
Merge pull request #9554 from p8/rails/iodine-set-workers
msmith-techempower Jan 20, 2025
ff0bd35
Merge pull request #9555 from jkuhn1/master
msmith-techempower Jan 20, 2025
90a7589
Merge pull request #9552 from p8/sinatra/iodine-set-workers
msmith-techempower Jan 20, 2025
834104f
Merge pull request #9550 from joanhey/reactphp--libuv
msmith-techempower Jan 20, 2025
65d9237
Merge pull request #9548 from vividsnow/master
msmith-techempower Jan 20, 2025
92cf36e
Merge pull request #9527 from WyriHaximus-labs/reactphp-show-errors
msmith-techempower Jan 20, 2025
27012ed
Merge pull request #9538 from WyriHaximus-labs/reactphp-handle-uncaug…
msmith-techempower Jan 20, 2025
0c959df
Merge pull request #9553 from eoioer/master
msmith-techempower Jan 20, 2025
a7deef0
Changes to fortunes.
spericas Nov 1, 2024
df21e04
Write fortunes output with an output stream.
spericas Nov 4, 2024
c4a735d
Write fortunes output with an output stream using byte[].
spericas Nov 4, 2024
dab117a
New connection pool.
spericas Nov 4, 2024
249c882
Old fortune handler.
spericas Nov 5, 2024
cc9ef0e
Lazy connections.
spericas Nov 5, 2024
6521f36
New connection pool using carrier threads.
spericas Nov 26, 2024
96c3a1b
Updated fortunes query.
spericas Nov 26, 2024
2fbd1d3
Cleans fortunes template.
spericas Nov 26, 2024
d669122
Using jte.
spericas Nov 27, 2024
8c47f6c
Updates Helidon version to 4.1.5.
spericas Jan 16, 2025
437a76e
Updates code to use new send method.
spericas Jan 16, 2025
429f4b3
update sisk benchmarks
CypherPotato Jan 22, 2025
c72edf3
rename sisk folder
CypherPotato Jan 22, 2025
cb492c6
Merge branch 'master' into master
CypherPotato Jan 22, 2025
6b343b3
[PHP/Laravel] Synchronize ripple's latest decision
cclilshy Jan 22, 2025
8c5ed65
[ruby/rack] Mark Rack as Realistic instead of Stripped
p8 Jan 22, 2025
f715357
fix: csproj version
CypherPotato Jan 22, 2025
da8c29b
Merge pull request #9549 from AlliBalliBaba/optimize-frankenphp-file-…
msmith-techempower Jan 23, 2025
a023ee0
Merge pull request #9560 from p8/rack/realistic
msmith-techempower Jan 23, 2025
4cc3ed6
Merge pull request #9559 from cclilshy/master
msmith-techempower Jan 23, 2025
902d4e0
Merge pull request #9558 from CypherPotato/master
msmith-techempower Jan 23, 2025
86bcd44
Merge pull request #9556 from spericas/helidon-4.1.5-test2
msmith-techempower Jan 23, 2025
7de4d68
Bump org.apache.wicket:wicket-core in /frameworks/Java/wicket
dependabot[bot] Jan 23, 2025
523534b
Merge pull request #9561 from TechEmpower/dependabot/maven/frameworks…
github-actions[bot] Jan 23, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
60 changes: 40 additions & 20 deletions frameworks/CSharp/sisk/benchmark_config.json
Original file line number Diff line number Diff line change
@@ -1,21 +1,41 @@
{
"framework": "sisk",
"tests": [{
"default": {
"plaintext_url": "/plaintext",
"json_url": "/json",
"port": 8080,
"approach": "Realistic",
"classification": "Fullstack",
"database": "None",
"framework": "Sisk",
"language": "C#",
"orm": "Raw",
"platform": ".NET",
"webserver": "Sisk",
"os": "Linux",
"database_os": "Linux",
"display_name": "Sisk Framework"
}
}]
}
"framework": "sisk",
"tests": [
{
"default": {
"plaintext_url": "/plaintext",
"json_url": "/json",
"port": 8080,
"approach": "Realistic",
"classification": "Micro",
"database": "None",
"framework": "Sisk",
"language": "C#",
"orm": "Raw",
"platform": ".NET",
"webserver": "HttpListener",
"os": "Linux",
"database_os": "Linux",
"display_name": "Sisk Framework"
}
},
{
"cadente": {
"plaintext_url": "/plaintext",
"json_url": "/json",
"port": 8080,
"approach": "Realistic",
"classification": "Platform",
"database": "None",
"framework": "Sisk",
"language": "C#",
"orm": "Raw",
"platform": ".NET",
"webserver": "Cadente",
"os": "Linux",
"database_os": "Linux",
"display_name": "Sisk Framework (Cadente)"
}
}
]
}
17 changes: 15 additions & 2 deletions frameworks/CSharp/sisk/config.toml
Original file line number Diff line number Diff line change
Expand Up @@ -5,11 +5,24 @@ name = "sisk"
urls.plaintext = "/plaintext"
urls.json = "/json"
approach = "Realistic"
classification = "Fullstack"
classification = "Micro"
database = "None"
database_os = "Linux"
os = "Linux"
orm = "Raw"
platform = ".NET"
webserver = "Sisk"
webserver = "HttpListener"
versus = "None"

[cadente]
urls.plaintext = "/plaintext"
urls.json = "/json"
approach = "Realistic"
classification = "Platform"
database = "None"
database_os = "Linux"
os = "Linux"
orm = "Raw"
platform = ".NET"
webserver = "Cadente"
versus = "None"
19 changes: 19 additions & 0 deletions frameworks/CSharp/sisk/sisk-cadente.dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
FROM mcr.microsoft.com/dotnet/sdk:8.0 AS build
WORKDIR /source

# copy csproj and restore as distinct layers
COPY sisk-cadente/*.csproj .
RUN dotnet restore -r linux-musl-x64

# copy and publish app and libraries
COPY sisk-cadente/ .
RUN dotnet publish -c release -o /app -r linux-musl-x64

# final stage/image
FROM mcr.microsoft.com/dotnet/aspnet:8.0 AS runtime
WORKDIR /app
COPY --from=build /app .

ENTRYPOINT ["dotnet", "./sisk.dll"]

EXPOSE 8080
36 changes: 36 additions & 0 deletions frameworks/CSharp/sisk/sisk-cadente/Program.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
using System.Text;
using System.Text.Json;
using Sisk.Cadente;

var host = new HttpHost ( 8080, session => {
var request = session.Request;

if (request.Path == "/plaintext") {
SerializePlainTextResponse ( session.Response );
}
else if (request.Path == "/json") {
SerializeJsonResponse ( session.Response );
}
else {
session.Response.StatusCode = 404;
}
} );

host.Start ();
Thread.Sleep ( Timeout.Infinite );

static void SerializePlainTextResponse ( HttpResponse response ) {
var contentBytes = Encoding.UTF8.GetBytes ( "Hello, world!" );

response.Headers.Add ( new HttpHeader ( "Content-Type", "text/plain" ) );
response.ResponseStream = new MemoryStream ( contentBytes );
}

static void SerializeJsonResponse ( HttpResponse response ) {
var contentBytes = JsonSerializer.SerializeToUtf8Bytes ( new {
message = "Hello, world!"
} );

response.Headers.Add ( new HttpHeader ( "Content-Type", "application/json; charset=utf-8" ) );
response.ResponseStream = new MemoryStream ( contentBytes );
}
15 changes: 15 additions & 0 deletions frameworks/CSharp/sisk/sisk-cadente/sisk.csproj
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
<Project Sdk="Microsoft.NET.Sdk">

<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net8.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
<ServerGarbageCollection>true</ServerGarbageCollection>
</PropertyGroup>

<ItemGroup>
<PackageReference Include="Sisk.Cadente" Version="0.1.42-alpha1" />
</ItemGroup>

</Project>
30 changes: 13 additions & 17 deletions frameworks/CSharp/sisk/sisk/Program.cs
Original file line number Diff line number Diff line change
@@ -1,26 +1,22 @@
using Sisk.Core.Http;
using System.Net.Http.Json;
using Sisk.Core.Http;
using Sisk.Core.Routing;
using System.Net.Http.Json;

var app = HttpServer.CreateBuilder(host =>
{
host.UseListeningPort("http://+:8080/");
});
var app = HttpServer.CreateBuilder ( host => {
host.UseListeningPort ( "http://+:8080/" );
} ).Build ();

app.Router.SetRoute(RouteMethod.Get, "/plaintext", PlainText);
app.Router.SetRoute(RouteMethod.Get, "/json", Json);
app.Router.SetRoute ( RouteMethod.Get, "/plaintext", PlainText );
app.Router.SetRoute ( RouteMethod.Get, "/json", Json );

app.Start();
app.Start ();

static HttpResponse PlainText(HttpRequest request)
{
return new HttpResponse().WithContent("Hello, world!");
static HttpResponse PlainText ( HttpRequest request ) {
return new HttpResponse ( "Hello, world!" );
}

static HttpResponse Json(HttpRequest request)
{
return new HttpResponse().WithContent(JsonContent.Create(new
{
static HttpResponse Json ( HttpRequest request ) {
return new HttpResponse ( JsonContent.Create ( new {
message = "Hello, world!"
}));
} ) );
}
4 changes: 2 additions & 2 deletions frameworks/CSharp/sisk/sisk/sisk.csproj
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
<Project Sdk="Microsoft.NET.Sdk">
<Project Sdk="Microsoft.NET.Sdk">

<PropertyGroup>
<OutputType>Exe</OutputType>
Expand All @@ -9,7 +9,7 @@
</PropertyGroup>

<ItemGroup>
<PackageReference Include="Sisk.HttpServer" Version="0.16.2" />
<PackageReference Include="Sisk.HttpServer" Version="1.4.0-beta3" />
</ItemGroup>

</Project>
25 changes: 13 additions & 12 deletions frameworks/Java/helidon/nima/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@
<parent>
<groupId>io.helidon.applications</groupId>
<artifactId>helidon-se</artifactId>
<version>4.1.2</version>
<version>4.1.5</version>
<relativePath/>
</parent>

Expand All @@ -38,6 +38,7 @@
<rocker.version>1.3.0</rocker.version>
<vertx-pg-client.version>4.5.3</vertx-pg-client.version>
<jsoniter.version>0.9.23</jsoniter.version>
<jte.version>3.1.15</jte.version>
</properties>

<dependencies>
Expand Down Expand Up @@ -78,9 +79,9 @@
<version>42.6.1</version>
</dependency>
<dependency>
<groupId>com.fizzed</groupId>
<artifactId>rocker-runtime</artifactId>
<version>${rocker.version}</version>
<groupId>gg.jte</groupId>
<artifactId>jte</artifactId>
<version>${jte.version}</version>
</dependency>
<dependency>
<groupId>io.helidon.common.testing</groupId>
Expand All @@ -98,7 +99,6 @@
<scope>test</scope>
</dependency>
</dependencies>

<build>
<plugins>
<plugin>
Expand All @@ -125,20 +125,21 @@
</execution>
</executions>
</plugin>

<plugin>
<groupId>com.fizzed</groupId>
<artifactId>rocker-maven-plugin</artifactId>
<version>${rocker.version}</version>
<groupId>gg.jte</groupId>
<artifactId>jte-maven-plugin</artifactId>
<version>${jte.version}</version>
<configuration>
<sourceDirectory>${project.basedir}/src/main/resources/views</sourceDirectory>
<contentType>Html</contentType>
</configuration>
<executions>
<execution>
<id>generate-rocker-templates</id>
<phase>generate-sources</phase>
<goals>
<goal>generate</goal>
</goals>
<configuration>
<templateDirectory>src/main/resources</templateDirectory>
</configuration>
</execution>
</executions>
</plugin>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@

import java.io.IOException;
import java.util.Arrays;
import java.util.Map;
import java.util.List;
import java.util.Map;

import com.jsoniter.output.JsonStream;
import com.jsoniter.output.JsonStreamPool;
Expand All @@ -15,7 +15,7 @@ private JsonSerializer() {
}

/**
* Serialize an instance into a JSON object and return it as a byte array.
* Serialize an instance into a byte array.
*
* @param obj the instance
* @return the byte array
Expand All @@ -28,19 +28,31 @@ public static byte[] serialize(Object obj) {
return Arrays.copyOfRange(stream.buffer().data(), 0, stream.buffer().tail());
} catch (IOException e) {
throw new JsonException(e);
} finally {
JsonStreamPool.returnJsonStream(stream);
}
}

/**
* Serialize a map of strings into a JSON object and return it as a byte array.
* Serialize an instance into a JSON stream.
*
* @param obj the instance
* @param stream the JSON stream
*/
public static void serialize(Object obj, JsonStream stream) {
try {
stream.reset(null);
stream.writeVal(obj.getClass(), obj);
} catch (IOException e) {
throw new JsonException(e);
}
}

/**
* Serialize a map of strings into a JSON stream.
*
* @param map the map
* @return the byte array
* @param stream the JSON stream
*/
public static byte[] serialize(Map<String, String> map) {
JsonStream stream = JsonStreamPool.borrowJsonStream();
public static void serialize(Map<String, String> map, JsonStream stream) {
try {
stream.reset(null);
stream.writeObjectStart();
Expand All @@ -53,22 +65,18 @@ public static byte[] serialize(Map<String, String> map) {
}
});
stream.writeObjectEnd();
return Arrays.copyOfRange(stream.buffer().data(), 0, stream.buffer().tail());
} catch (IOException e) {
throw new JsonException(e);
} finally {
JsonStreamPool.returnJsonStream(stream);
}
}

/**
* Serialize a list of objects into a JSON array and return it as a byte array.
* Serialize a list of objects into a JSON stream.
*
* @param objs the list of objects
* @return the byte array
* @param stream the JSON stream
*/
public static byte[] serialize(List<?> objs) {
JsonStream stream = JsonStreamPool.borrowJsonStream();
public static void serialize(List<?> objs, JsonStream stream) {
try {
stream.reset(null);
stream.writeArrayStart();
Expand All @@ -82,11 +90,8 @@ public static byte[] serialize(List<?> objs) {

}
stream.writeArrayEnd();
return Arrays.copyOfRange(stream.buffer().data(), 0, stream.buffer().tail());
} catch (IOException e) {
throw new JsonException(e);
} finally {
JsonStreamPool.returnJsonStream(stream);
}
}
}
Loading
Loading