Skip to content

Feature/dotnet8 rc2 #38

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 30 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
30 commits
Select commit Hold shift + click to select a range
21c487c
fixing .net 8 minimal api
Nov 4, 2023
2cea28e
Merge pull request #2 from rventuri76/feature/aws-lambda-web-adapter
rventuri76 Nov 5, 2023
bab15e6
.
Nov 5, 2023
6a1ec03
Merge pull request #3 from rventuri76/feature/aws-lambda-web-adapter
rventuri76 Nov 5, 2023
57e2976
fixing load test with codebuild
Nov 5, 2023
994cd7f
adding sdk 8.0 for code build compilation
Nov 5, 2023
b7d1f45
Merge pull request #4 from rventuri76/feature/aws-lambda-web-adapter
rventuri76 Nov 5, 2023
a97f739
.
Nov 5, 2023
74b5450
fixing typo
Nov 5, 2023
ae7ee98
Merge pull request #6 from rventuri76/feature/aws-lambda-web-adapter
rventuri76 Nov 5, 2023
a8bd2d6
.
Nov 5, 2023
87cd54e
.
Nov 5, 2023
aa881ce
Merge pull request #7 from rventuri76/feature/aws-lambda-web-adapter
rventuri76 Nov 5, 2023
3a3b624
Merge pull request #8 from rventuri76/feature/aws-lambda-web-adapter
rventuri76 Nov 5, 2023
2d9db90
adding net8 minimila api stats after 10 min loadtest
Nov 5, 2023
130cdb5
updating NET8 project with load test script
Nov 10, 2023
e340cec
adding net8 load test in global script
Nov 10, 2023
d0a285a
saving NET8 load test report in artifacts
Nov 10, 2023
d9a422e
updatin net 8 projects
Nov 10, 2023
34efac0
testing net8native
Nov 11, 2023
197715b
.
Nov 11, 2023
ee76535
.
Nov 11, 2023
d7e6d1a
.
Nov 11, 2023
bb4c770
fixing NET8 Native
Nov 12, 2023
7784f4e
fixing net8 native minimal api
Nov 12, 2023
c664217
adding ability to choose .netsdk to be used in codebuild
Nov 12, 2023
13103c6
.
Nov 12, 2023
befff93
.
Nov 12, 2023
893391b
.
Nov 13, 2023
8c4093a
updating load test scripts
Nov 15, 2023
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
26 changes: 26 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -557,6 +557,32 @@ The .NET 8 benchmarks include the number of cold and warm starts, alongside the
<td><b style="color: green">23.84</b></td>
<td>120.45</td>
</tr>
<tr>
<th>Minimal API on X86</th>
<td>195</td>
<td>1672.85</td>
<td>1737.61</td>
<td>1833.97</td>
<td>1889.15</td>
<td>136,006</td>
<td><b style="color: green">6.30</b></td>
<td><b style="color: green">10.98</b></td>
<td><b style="color: green">26.72</b></td>
<td>124.67</td>
</tr>
<tr>
<th>Minimal API on ARM64</th>
<td>242</td>
<td>1972.79</td>
<td>2049.16</td>
<td>2107.32</td>
<td>2124.55</td>
<td>136,816</td>
<td><b style="color: green">6.01</b></td>
<td><b style="color: green">9.37</b></td>
<td><b style="color: green">24.69</b></td>
<td>331.6</td>
</tr>
</table>

*The .NET 8 native AOT examples need to be compiled on Amazon Linux 2, this is a temporary solution as a pre-cursor to a SAM build image being available for .NET 8.
Expand Down
15 changes: 12 additions & 3 deletions loadtest/codebuild/load-test-buildspec.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,14 +3,23 @@ version: 0.2
phases:
install:
commands:
- npm i artillery -g
- cd loadtest/codebuild
- ./setup.sh
build:
commands:
- export temp1=$(pwd);echo $temp1
- cd loadtest/codebuild
- ./run-all-load-tests.sh
artifacts:
files:
- src/NET6/Report/*
- src/NET6Containers/Report/*
- src/NET6CustomRuntime/Report/*
- src/NET6MinimalAPI/Report/*
- src/NET6MinimalAPIWebAdapter/Report/*
- src/NET6Native/Report/*
- src/NET6TopLevelStatements/Report/*
- src/NET6WithPowerTools/Report/*
- src/NET8/Report/*
- src/NET8MinimalAPI/Report/*
- src/NET8Native/Report/*
- src/NET8NativeMinimalAPI/Report/*
name: loadtest-$(date +%Y-%m-%H-%M)
32 changes: 32 additions & 0 deletions loadtest/codebuild/load-test.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
config:
target: "{{ $processEnvironment.API_URL }}"
http:
timeout : 60
processor: "../generator.js"
phases:
- duration: 60
arrivalRate: 100

scenarios:
- name: "Generate products"
weight: 8
flow:
- function: "generateProduct"
- put:
url: "/{{ Id }}"
headers:
Content-Type: "application/json"
json:
Id: "{{ Id }}"
Name: "{{ Name }}"
Price: "{{ Price }}"
- get:
url: "/{{ Id }}"
- think: 3
- delete:
url: "/{{ Id }}"
- name: "Get products"
weight: 2
flow:
- get:
url: "{{ $processEnvironment.API_URL }}"
44 changes: 42 additions & 2 deletions loadtest/codebuild/run-all-load-tests.sh
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ echo --------------------------------------------

if [ "$LT_NET6_MINIMAL_API" != yes ];
then
echo SKIPPING net6 minimal api :$LT_NET6_MINIMAL_API
echo SKIPPING net6 minimal api - LT_NET6_MINIMAL_API=$LT_NET6_MINIMAL_API
else
echo "RUNNING load test for net6 minimal api"
cd ../../src/NET6MinimalAPI/
Expand All @@ -42,10 +42,50 @@ fi

if [ "$LT_NET6_MINIMAL_API_WEB_ADAPTER" != yes ];
then
echo SKIPPING net6 minimal api web adapter :$LT_NET6_MINIMAL_API_WEB_ADAPTER
echo SKIPPING net6 minimal api web adapter - LT_NET6_MINIMAL_API_WEB_ADAPTER = $LT_NET6_MINIMAL_API_WEB_ADAPTER
else
echo "RUNNING load test for net6 minimal api web adapter"
cd ../../src/NET6MinimalAPIWebAdapter/
source ./deploy.sh $DELETE_STACK
source ./run-loadtest.sh $TEST_DURATIOMN_SEC $LOG_INTERVAL_MIN $LOG_DELETE
fi

if [ "$LT_NET8" != yes ];
then
echo SKIPPING net8 - LT_NET8=$LT_NET8
else
echo "RUNNING load test for net8"
cd ../../src/NET8/
source ./deploy.sh $DELETE_STACK
source ./run-loadtest.sh $TEST_DURATIOMN_SEC $LOG_INTERVAL_MIN $LOG_DELETE
fi

if [ "$LT_NET8_MINIMAL_API" != yes ];
then
echo SKIPPING net8 minimal api - LT_NET8_MINIMAL_API=$LT_NET8_MINIMAL_API
else
echo "RUNNING load test for net8 minimal api"
cd ../../src/NET8MinimalAPI/
source ./deploy.sh $DELETE_STACK
source ./run-loadtest.sh $TEST_DURATIOMN_SEC $LOG_INTERVAL_MIN $LOG_DELETE
fi

if [ "$LT_NET8_NATIVE" != yes ];
then
echo SKIPPING net8 native - LT_NET8_NATIVE=$LT_NET8_NATIVE
else
echo "RUNNING load test for net8 native"
cd ../../src/NET8Native/
source ./deploy.sh $DELETE_STACK
source ./run-loadtest.sh $TEST_DURATIOMN_SEC $LOG_INTERVAL_MIN $LOG_DELETE
fi

if [ "$LT_NET8_NATIVE_MINIMAL_API" != yes ];
then
echo SKIPPING net8 native minimal api LT_NET8_NATIVE_MINIMAL_API=$LT_NET8_NATIVE_MINIMAL_API
else
echo "RUNNING load test for net8 native minimal api"
cd ../../src/NET8NativeMinimalAPI/
source ./deploy.sh $DELETE_STACK
source ./run-loadtest.sh $TEST_DURATIOMN_SEC $LOG_INTERVAL_MIN $LOG_DELETE
fi
16 changes: 16 additions & 0 deletions loadtest/codebuild/setup.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
#LT_NET_SDK_CHANNEL
#Specifies the source channel for the installation. The possible values are:
# STS: The most recent Standard Term Support release.
# LTS: The most recent Long Term Support release.
# Two-part version in A.B format, representing a specific release (for example, 3.1 or 6.0).
# Three-part version in A.B.Cxx format, representing a specific SDK release (for example, 6.0.1xx or 6.0.2xx). Available since the 5.0 release.
echo --------------------------------------------
echo Installing dotnet runtime version: $LT_NET_SDK_CHANNEL
echo --------------------------------------------

curl -sSL https://dot.net/v1/dotnet-install.sh | bash /dev/stdin --channel $LT_NET_SDK_CHANNEL

echo --------------------------------------------
echo Installing artillery
echo --------------------------------------------
npm i artillery -g
18 changes: 0 additions & 18 deletions src/NET6CustomRuntime/DeleteProduct/aws-lambda-tools-defaults.json

This file was deleted.

18 changes: 0 additions & 18 deletions src/NET6CustomRuntime/GetProduct/aws-lambda-tools-defaults.json

This file was deleted.

18 changes: 0 additions & 18 deletions src/NET6CustomRuntime/GetProducts/aws-lambda-tools-defaults.json

This file was deleted.

15 changes: 0 additions & 15 deletions src/NET6CustomRuntime/PutProduct/aws-lambda-tools-defaults.json

This file was deleted.

62 changes: 0 additions & 62 deletions src/NET6MinimalAPI/Report/load-test-report-arm64.json

This file was deleted.

18 changes: 0 additions & 18 deletions src/NET6MinimalAPI/Report/load-test-report-arm64.txt

This file was deleted.

62 changes: 0 additions & 62 deletions src/NET6MinimalAPI/Report/load-test-report-x86.json

This file was deleted.

Loading