-
-
Notifications
You must be signed in to change notification settings - Fork 36
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
Port GDScript benchmarks to C# #84
Merged
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
OverloadedOrama
force-pushed
the
csharp-ports
branch
from
June 29, 2024 14:03
6a49605
to
ed7adf8
Compare
Calinou
approved these changes
Aug 4, 2024
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Tested locally on 4.3.rc2 .NET (rebased on top of master
b8827a4), it works as expected.
Thanks a ton!
Results on my PC for reference with the 4.3.rc2 official Linux binary:
{"benchmarks":[{"category":"Csharp > Alloc","name":"Deep Tree","results":{"time":387.3}},{"category":"Csharp > Alloc","name":"Duplicate","results":{"time":934.2}},{"category":"Csharp > Alloc","name":"Fragmentation","results":{"time":3517}},{"category":"Csharp > Alloc","name":"Wide Tree","results":{"time":200.9}},{"category":"Csharp > Array","name":"Fill Loop","results":{"time":14.47}},{"category":"Csharp > Array","name":"Fill Method","results":{"time":86.12}},{"category":"Csharp > Binary Trees","name":"Binary Trees 13","results":{"time":55.17}},{"category":"Csharp > Binary Trees","name":"Binary Trees 15","results":{"time":86.51}},{"category":"Csharp > Binary Trees","name":"Binary Trees 18","results":{"time":757.2}},{"category":"Csharp > Control","name":"Control","results":{"time":0.04}},{"category":"Csharp > For Loop","name":"Loop Add","results":{"time":0.536}},{"category":"Csharp > For Loop","name":"Loop Call","results":{"time":1.175}},{"category":"Csharp > Hello World","name":"Hello World","results":{"time":0.084}},{"category":"Csharp > Lambda Performance","name":"Lambda Call","results":{"time":2.921}},{"category":"Csharp > List","name":"Color List","results":{"time":59.95}},{"category":"Csharp > List","name":"Float 32 List","results":{"time":29.61}},{"category":"Csharp > List","name":"Float 64 List","results":{"time":18.17}},{"category":"Csharp > List","name":"Int 32 List","results":{"time":12.82}},{"category":"Csharp > List","name":"Int 64 List","results":{"time":17.23}},{"category":"Csharp > List","name":"String List","results":{"time":232.4}},{"category":"Csharp > List","name":"Vector 2 List","results":{"time":29.55}},{"category":"Csharp > List","name":"Vector 3 List","results":{"time":45.96}},{"category":"Csharp > Mandelbrot Set","name":"Mandelbrot Set","results":{"time":168}},{"category":"Csharp > Merkle Trees","name":"Merkle Trees 13","results":{"time":32.82}},{"category":"Csharp > Merkle Trees","name":"Merkle Trees 15","results":{"time":127.3}},{"category":"Csharp > Merkle Trees","name":"Merkle Trees 18","results":{"time":1180}},{"category":"Csharp > Nbody","name":"Nbody 1 000 000","results":{"time":107.7}},{"category":"Csharp > Nbody","name":"Nbody 500 000","results":{"time":54.11}},{"category":"Csharp > Spectral Norm","name":"Spectral Norm 100","results":{"time":1.378}},{"category":"Csharp > Spectral Norm","name":"Spectral Norm 1000","results":{"time":102.9}},{"category":"Csharp > Spectral Norm","name":"Spectral Norm 500","results":{"time":25.88}},{"category":"Csharp > String Checksum","name":"Md 5 Buffer Empty","results":{"time":287.5}},{"category":"Csharp > String Checksum","name":"Md 5 Buffer Non Empty","results":{"time":471.4}},{"category":"Csharp > String Checksum","name":"Md 5 Text Empty","results":{"time":730}},{"category":"Csharp > String Checksum","name":"Md 5 Text Non Empty","results":{"time":890.1}},{"category":"Csharp > String Checksum","name":"Sha 1 Buffer Empty","results":{"time":327.1}},{"category":"Csharp > String Checksum","name":"Sha 1 Buffer Non Empty","results":{"time":423.2}},{"category":"Csharp > String Checksum","name":"Sha 1 Text Empty","results":{"time":881.4}},{"category":"Csharp > String Checksum","name":"Sha 1 Text Non Empty","results":{"time":971.4}},{"category":"Csharp > String Checksum","name":"Sha 256 Buffer Empty","results":{"time":307.1}},{"category":"Csharp > String Checksum","name":"Sha 256 Buffer Non Empty","results":{"time":415.7}},{"category":"Csharp > String Checksum","name":"Sha 256 Text Empty","results":{"time":1233}},{"category":"Csharp > String Checksum","name":"Sha 256 Text Non Empty","results":{"time":1332}},{"category":"Csharp > String Format","name":"Complex Variable Concatenate","results":{"time":251.6}},{"category":"Csharp > String Format","name":"Complex Variable Method","results":{"time":8754}},{"category":"Csharp > String Format","name":"Complex Variable Percent","results":{"time":228.8}},{"category":"Csharp > String Format","name":"No Op Constant Method","results":{"time":469.6}},{"category":"Csharp > String Format","name":"Simple Constant Concatenate","results":{"time":0.661}},{"category":"Csharp > String Format","name":"Simple Constant Method","results":{"time":3035}},{"category":"Csharp > String Format","name":"Simple Constant Method Constant Dict","results":{"time":1192}},{"category":"Csharp > String Format","name":"Simple Constant Percent","results":{"time":1.217}},{"category":"Csharp > String Format","name":"Simple Variable Concatenate","results":{"time":19.23}},{"category":"Csharp > String Format","name":"Simple Variable Method","results":{"time":2833}},{"category":"Csharp > String Format","name":"Simple Variable Percent","results":{"time":33.83}},{"category":"Csharp > String Manipulation","name":"Begins With","results":{"time":15.41}},{"category":"Csharp > String Manipulation","name":"Bigrams","results":{"time":112.5}},{"category":"Csharp > String Manipulation","name":"Capitalize","results":{"time":601.4}},{"category":"Csharp > String Manipulation","name":"Casecmp To","results":{"time":28.07}},{"category":"Csharp > String Manipulation","name":"Contains","results":{"time":4.096}},{"category":"Csharp > String Manipulation","name":"Count","results":{"time":35.05}},{"category":"Csharp > String Manipulation","name":"Countn","results":{"time":42.66}},{"category":"Csharp > String Manipulation","name":"Ends With","results":{"time":18.41}},{"category":"Csharp > String Manipulation","name":"Find","results":{"time":6.437}},{"category":"Csharp > String Manipulation","name":"Findn","results":{"time":7.523}},{"category":"Csharp > String Manipulation","name":"Insert","results":{"time":11.59}},{"category":"Csharp > String Manipulation","name":"Is Valid Filename","results":{"time":36.38}},{"category":"Csharp > String Manipulation","name":"Lpad","results":{"time":19.18}},{"category":"Csharp > String Manipulation","name":"Nocasecmp To","results":{"time":28.47}},{"category":"Csharp > String Manipulation","name":"Pad Decimals","results":{"time":78.28}},{"category":"Csharp > String Manipulation","name":"Pad Decimals Pre Constructed","results":{"time":14.61}},{"category":"Csharp > String Manipulation","name":"Pad Zeros","results":{"time":43.43}},{"category":"Csharp > String Manipulation","name":"Pad Zeros Pre Constructed","results":{"time":35.8}},{"category":"Csharp > String Manipulation","name":"Rfind","results":{"time":10.81}},{"category":"Csharp > String Manipulation","name":"Rfindn","results":{"time":28.05}},{"category":"Csharp > String Manipulation","name":"Rpad","results":{"time":21.81}},{"category":"Csharp > String Manipulation","name":"Similarity","results":{"time":143.5}},{"category":"Csharp > String Manipulation","name":"Simplify Path","results":{"time":1098}},{"category":"Csharp > String Manipulation","name":"Split","results":{"time":47.91}},{"category":"Csharp > String Manipulation","name":"Split Floats","results":{"time":228.6}},{"category":"Csharp > String Manipulation","name":"Substr","results":{"time":8.353}},{"category":"Csharp > String Manipulation","name":"To Camel Case","results":{"time":920.1}},{"category":"Csharp > String Manipulation","name":"To Lower","results":{"time":19.12}},{"category":"Csharp > String Manipulation","name":"To Pascal Case","results":{"time":1492}},{"category":"Csharp > String Manipulation","name":"To Snake Case","results":{"time":1127}},{"category":"Csharp > String Manipulation","name":"To Utf 16 Buffer","results":{"time":32.17}},{"category":"Csharp > String Manipulation","name":"To Utf 32 Buffer","results":{"time":101.7}},{"category":"Csharp > String Manipulation","name":"To Utf 8 Buffer","results":{"time":11.6}},{"category":"Csharp > String Manipulation","name":"Uri Decode","results":{"time":65.12}},{"category":"Csharp > String Manipulation","name":"Uri Encode","results":{"time":117.9}},{"category":"Csharp > String Manipulation","name":"Validate Node Name","results":{"time":47.66}},{"category":"Csharp > String Manipulation","name":"Xml Escape","results":{"time":80.98}},{"category":"Csharp > String Manipulation","name":"Xml Unescape","results":{"time":2.243}},{"category":"Csharp > Physics > Rigid Body 2d","name":"2000 Rigid Body 2d Circles","results":{"idle":118.5,"physics":7.837,"time":16.47}},{"category":"Csharp > Physics > Rigid Body 2d","name":"2000 Rigid Body 2d Continuous","results":{"idle":48.49,"physics":9.821,"time":12.48}},{"category":"Csharp > Physics > Rigid Body 2d","name":"2000 Rigid Body 2d Mixed","results":{"idle":59.17,"physics":8.814,"time":12.22}},{"category":"Csharp > Physics > Rigid Body 2d","name":"2000 Rigid Body 2d Squares","results":{"idle":58.52,"physics":9.721,"time":12.13}},{"category":"Csharp > Physics > Rigid Body 2d","name":"2000 Rigid Body 2d Unbound","results":{"idle":60.65,"physics":9.604,"time":12.34}},{"category":"Csharp > Physics > Rigid Body 2d","name":"2000 Rigid Body 2d Unique","results":{"idle":24.71,"physics":8.968,"time":14.68}},{"category":"Csharp > Physics > Rigid Body 3d","name":"2000 Rigid Body 3d Circles","results":{"idle":206.7,"physics":21.68,"time":22.47}},{"category":"Csharp > Physics > Rigid Body 3d","name":"2000 Rigid Body 3d Continuous","results":{"idle":24.21,"physics":22.83,"time":14.63}},{"category":"Csharp > Physics > Rigid Body 3d","name":"2000 Rigid Body 3d Mixed","results":{"idle":31.29,"physics":22.7,"time":19.68}},{"category":"Csharp > Physics > Rigid Body 3d","name":"2000 Rigid Body 3d Squares","results":{"idle":24.83,"physics":25.42,"time":14.77}},{"category":"Csharp > Physics > Rigid Body 3d","name":"2000 Rigid Body 3d Unbound","results":{"idle":24.56,"physics":14.67,"time":16.3}},{"category":"Csharp > Physics > Rigid Body 3d","name":"2000 Rigid Body 3d Unique","results":{"idle":31.61,"physics":22.75,"time":21.83}}],"engine":{"version":"v4.3.rc2.official","version_hash":"3978628c6cc1227250fc6ed45c8d854d24c30c30"},"system":{"cpu_architecture":"x86_64","cpu_count":32,"cpu_name":"13th Gen Intel(R) Core(TM) i9-13900K","os":"Linux"}}
GDScript for comparison:
{"benchmarks":[{"category":"Gdscript > Alloc","name":"Deep Tree","results":{"time":139.5}},{"category":"Gdscript > Alloc","name":"Duplicate","results":{"time":918}},{"category":"Gdscript > Alloc","name":"Fragmentation","results":{"time":1883}},{"category":"Gdscript > Alloc","name":"Wide Tree","results":{"time":101.2}},{"category":"Gdscript > Array","name":"Fill Loop","results":{"time":177.7}},{"category":"Gdscript > Array","name":"Fill Method","results":{"time":74.72}},{"category":"Gdscript > Array","name":"Packed Color Array","results":{"time":115.3}},{"category":"Gdscript > Array","name":"Packed Float 32 Array","results":{"time":78.45}},{"category":"Gdscript > Array","name":"Packed Float 64 Array","results":{"time":78.11}},{"category":"Gdscript > Array","name":"Packed Int 32 Array","results":{"time":64.9}},{"category":"Gdscript > Array","name":"Packed Int 64 Array","results":{"time":64.11}},{"category":"Gdscript > Array","name":"Packed String Array","results":{"time":443}},{"category":"Gdscript > Array","name":"Packed Vector 2 Array","results":{"time":95.46}},{"category":"Gdscript > Array","name":"Packed Vector 3 Array","results":{"time":108.4}},{"category":"Gdscript > Array","name":"Typed Color Array","results":{"time":151.7}},{"category":"Gdscript > Array","name":"Typed Float Array","results":{"time":108}},{"category":"Gdscript > Array","name":"Typed Int Array","results":{"time":100.9}},{"category":"Gdscript > Array","name":"Typed String Array","results":{"time":483.9}},{"category":"Gdscript > Array","name":"Typed Vector 2 Array","results":{"time":130.8}},{"category":"Gdscript > Array","name":"Typed Vector 3 Array","results":{"time":143.7}},{"category":"Gdscript > Array","name":"Untyped Color Array","results":{"time":215.2}},{"category":"Gdscript > Array","name":"Untyped Float Array","results":{"time":165.7}},{"category":"Gdscript > Array","name":"Untyped Int Array","results":{"time":165.3}},{"category":"Gdscript > Array","name":"Untyped String Array","results":{"time":561.3}},{"category":"Gdscript > Array","name":"Untyped Vector 2 Array","results":{"time":209}},{"category":"Gdscript > Array","name":"Untyped Vector 3 Array","results":{"time":210.8}},{"category":"Gdscript > Binary Trees","name":"Binary Trees 13","results":{"time":445.9}},{"category":"Gdscript > Binary Trees","name":"Binary Trees 15","results":{"time":2168}},{"category":"Gdscript > Control","name":"Control","results":{"time":0.003}},{"category":"Gdscript > For Loop","name":"For Loop Add","results":{"time":6.744}},{"category":"Gdscript > For Loop","name":"For Loop Call","results":{"time":59.98}},{"category":"Gdscript > Hello World","name":"Hello World","results":{"time":0.01}},{"category":"Gdscript > Lambda Performance","name":"Lambda Call","results":{"time":32.26}},{"category":"Gdscript > Mandelbrot Set","name":"Mandelbrot Set","results":{"time":2161}},{"category":"Gdscript > Merkle Trees","name":"Merkle Trees 13","results":{"time":1502}},{"category":"Gdscript > Merkle Trees","name":"Merkle Trees 15","results":{"time":7583}},{"category":"Gdscript > Nbody","name":"Nbody 1 000 000","results":{"time":4420}},{"category":"Gdscript > Nbody","name":"Nbody 500 000","results":{"time":2174}},{"category":"Gdscript > Spectral Norm","name":"Spectral Norm 100","results":{"time":40.88}},{"category":"Gdscript > Spectral Norm","name":"Spectral Norm 1000","results":{"time":3952}},{"category":"Gdscript > Spectral Norm","name":"Spectral Norm 500","results":{"time":991.9}},{"category":"Gdscript > String Checksum","name":"Md 5 Buffer Empty","results":{"time":146.5}},{"category":"Gdscript > String Checksum","name":"Md 5 Buffer Non Empty","results":{"time":457.1}},{"category":"Gdscript > String Checksum","name":"Md 5 Text Empty","results":{"time":538.2}},{"category":"Gdscript > String Checksum","name":"Md 5 Text Non Empty","results":{"time":855.3}},{"category":"Gdscript > String Checksum","name":"Sha 1 Buffer Empty","results":{"time":136.1}},{"category":"Gdscript > String Checksum","name":"Sha 1 Buffer Non Empty","results":{"time":433.6}},{"category":"Gdscript > String Checksum","name":"Sha 1 Text Empty","results":{"time":590.4}},{"category":"Gdscript > String Checksum","name":"Sha 1 Text Non Empty","results":{"time":895.1}},{"category":"Gdscript > String Checksum","name":"Sha 256 Buffer Empty","results":{"time":221.5}},{"category":"Gdscript > String Checksum","name":"Sha 256 Buffer Non Empty","results":{"time":714.5}},{"category":"Gdscript > String Checksum","name":"Sha 256 Text Empty","results":{"time":935.1}},{"category":"Gdscript > String Checksum","name":"Sha 256 Text Non Empty","results":{"time":1369}},{"category":"Gdscript > String Format","name":"Complex Variable Concatenate","results":{"time":1301}},{"category":"Gdscript > String Format","name":"Complex Variable Method","results":{"time":2678}},{"category":"Gdscript > String Format","name":"Complex Variable Percent","results":{"time":2685}},{"category":"Gdscript > String Format","name":"No Op Constant Method","results":{"time":130.7}},{"category":"Gdscript > String Format","name":"Simple Constant Concatenate","results":{"time":3.355}},{"category":"Gdscript > String Format","name":"Simple Constant Method","results":{"time":656.2}},{"category":"Gdscript > String Format","name":"Simple Constant Method Constant Dict","results":{"time":499.6}},{"category":"Gdscript > String Format","name":"Simple Constant Percent","results":{"time":3.291}},{"category":"Gdscript > String Format","name":"Simple Variable Concatenate","results":{"time":151.5}},{"category":"Gdscript > String Format","name":"Simple Variable Method","results":{"time":655.3}},{"category":"Gdscript > String Format","name":"Simple Variable Percent","results":{"time":443.6}},{"category":"Gdscript > String Manipulation","name":"Begins With","results":{"time":8.679}},{"category":"Gdscript > String Manipulation","name":"Bigrams","results":{"time":631.1}},{"category":"Gdscript > String Manipulation","name":"Capitalize","results":{"time":1187}},{"category":"Gdscript > String Manipulation","name":"Casecmp To","results":{"time":8.484}},{"category":"Gdscript > String Manipulation","name":"Contains","results":{"time":9.737}},{"category":"Gdscript > String Manipulation","name":"Contains Gdscript In","results":{"time":3.31}},{"category":"Gdscript > String Manipulation","name":"Count","results":{"time":157}},{"category":"Gdscript > String Manipulation","name":"Countn","results":{"time":292.9}},{"category":"Gdscript > String Manipulation","name":"Ends With","results":{"time":10.66}},{"category":"Gdscript > String Manipulation","name":"Find","results":{"time":32.48}},{"category":"Gdscript > String Manipulation","name":"Findn","results":{"time":46.35}},{"category":"Gdscript > String Manipulation","name":"Get Slice","results":{"time":61.4}},{"category":"Gdscript > String Manipulation","name":"Get Slice Count","results":{"time":23.98}},{"category":"Gdscript > String Manipulation","name":"Humanize Size","results":{"time":550.4}},{"category":"Gdscript > String Manipulation","name":"Insert","results":{"time":200.6}},{"category":"Gdscript > String Manipulation","name":"Is Valid Filename","results":{"time":754.3}},{"category":"Gdscript > String Manipulation","name":"Lpad","results":{"time":164}},{"category":"Gdscript > String Manipulation","name":"Naturalnocasecmp To","results":{"time":9.141}},{"category":"Gdscript > String Manipulation","name":"Nocasecmp To","results":{"time":19.87}},{"category":"Gdscript > String Manipulation","name":"Pad Decimals","results":{"time":307.7}},{"category":"Gdscript > String Manipulation","name":"Pad Decimals Pre Constructed","results":{"time":59.74}},{"category":"Gdscript > String Manipulation","name":"Pad Zeros","results":{"time":316.6}},{"category":"Gdscript > String Manipulation","name":"Pad Zeros Pre Constructed","results":{"time":209.4}},{"category":"Gdscript > String Manipulation","name":"Rfind","results":{"time":33.34}},{"category":"Gdscript > String Manipulation","name":"Rfindn","results":{"time":143.7}},{"category":"Gdscript > String Manipulation","name":"Rpad","results":{"time":119.9}},{"category":"Gdscript > String Manipulation","name":"Rsplit","results":{"time":355.2}},{"category":"Gdscript > String Manipulation","name":"Similarity","results":{"time":546.8}},{"category":"Gdscript > String Manipulation","name":"Simplify Path","results":{"time":998.8}},{"category":"Gdscript > String Manipulation","name":"Split","results":{"time":323}},{"category":"Gdscript > String Manipulation","name":"Split Floats","results":{"time":170.1}},{"category":"Gdscript > String Manipulation","name":"Substr","results":{"time":48.83}},{"category":"Gdscript > String Manipulation","name":"To Camel Case","results":{"time":744.8}},{"category":"Gdscript > String Manipulation","name":"To Lower","results":{"time":156.5}},{"category":"Gdscript > String Manipulation","name":"To Pascal Case","results":{"time":1352}},{"category":"Gdscript > String Manipulation","name":"To Snake Case","results":{"time":968.6}},{"category":"Gdscript > String Manipulation","name":"To Utf 16 Buffer","results":{"time":109.6}},{"category":"Gdscript > String Manipulation","name":"To Utf 32 Buffer","results":{"time":74}},{"category":"Gdscript > String Manipulation","name":"To Utf 8 Buffer","results":{"time":110.1}},{"category":"Gdscript > String Manipulation","name":"To Wchar Buffer","results":{"time":74.17}},{"category":"Gdscript > String Manipulation","name":"Uri Decode","results":{"time":246.1}},{"category":"Gdscript > String Manipulation","name":"Uri Encode","results":{"time":258.5}},{"category":"Gdscript > String Manipulation","name":"Validate Filename","results":{"time":1342}},{"category":"Gdscript > String Manipulation","name":"Validate Node Name","results":{"time":74.22}},{"category":"Gdscript > String Manipulation","name":"Xml Escape","results":{"time":415}},{"category":"Gdscript > String Manipulation","name":"Xml Unescape","results":{"time":54.11}}],"engine":{"version":"v4.3.rc2.official","version_hash":"3978628c6cc1227250fc6ed45c8d854d24c30c30"},"system":{"cpu_architecture":"x86_64","cpu_count":32,"cpu_name":"13th Gen Intel(R) Core(TM) i9-13900K","os":"Linux"}}
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Ports the following GDScript benchmark suites to C#:
Note that in order for you to run C# benchmarks in Godot 4.3, #82 needs to be merged first.
Results on my PC
{
"benchmarks": [
{
"category": "Csharp > Alloc",
"name": "Deep Tree",
"results": {
"time": 904.4
}
},
{
"category": "Csharp > Alloc",
"name": "Duplicate",
"results": {
"time": 2405
}
},
{
"category": "Csharp > Alloc",
"name": "Fragmentation",
"results": {
"time": 9214
}
},
{
"category": "Csharp > Alloc",
"name": "Wide Tree",
"results": {
"time": 658
}
},
{
"category": "Csharp > Binary Trees",
"name": "Binary Trees 13",
"results": {
"time": 81.57
}
},
{
"category": "Csharp > Binary Trees",
"name": "Binary Trees 15",
"results": {
"time": 366.3
}
},
{
"category": "Csharp > Binary Trees",
"name": "Binary Trees 18",
"results": {
"time": 2220
}
},
{
"category": "Csharp > Hello World",
"name": "Hello World",
"results": {
"time": 0.222
}
},
{
"category": "Csharp > Lambda Performance",
"name": "Lambda Call",
"results": {
"time": 4.27
}
},
{
"category": "Csharp > Mandelbrot Set",
"name": "Mandelbrot Set",
"results": {
"time": 397.1
}
},
{
"category": "Csharp > Merkle Trees",
"name": "Merkle Trees 13",
"results": {
"time": 71.75
}
},
{
"category": "Csharp > Merkle Trees",
"name": "Merkle Trees 15",
"results": {
"time": 367.2
}
},
{
"category": "Csharp > Merkle Trees",
"name": "Merkle Trees 18",
"results": {
"time": 4393
}
},
{
"category": "Csharp > Nbody",
"name": "Nbody 1 000 000",
"results": {
"time": 389.9
}
},
{
"category": "Csharp > Nbody",
"name": "Nbody 500 000",
"results": {
"time": 193.8
}
},
{
"category": "Csharp > Spectral Norm",
"name": "Spectral Norm 100",
"results": {
"time": 4.813
}
},
{
"category": "Csharp > Spectral Norm",
"name": "Spectral Norm 1000",
"results": {
"time": 470.6
}
},
{
"category": "Csharp > Spectral Norm",
"name": "Spectral Norm 500",
"results": {
"time": 109.2
}
},
{
"category": "Csharp > String Checksum",
"name": "Md 5 Buffer Empty",
"results": {
"time": 892.2
}
},
{
"category": "Csharp > String Checksum",
"name": "Md 5 Buffer Non Empty",
"results": {
"time": 1274
}
},
{
"category": "Csharp > String Checksum",
"name": "Md 5 Text Empty",
"results": {
"time": 2452
}
},
{
"category": "Csharp > String Checksum",
"name": "Md 5 Text Non Empty",
"results": {
"time": 3028
}
},
{
"category": "Csharp > String Checksum",
"name": "Sha 1 Buffer Empty",
"results": {
"time": 1090
}
},
{
"category": "Csharp > String Checksum",
"name": "Sha 1 Buffer Non Empty",
"results": {
"time": 1246
}
},
{
"category": "Csharp > String Checksum",
"name": "Sha 1 Text Empty",
"results": {
"time": 3093
}
},
{
"category": "Csharp > String Checksum",
"name": "Sha 1 Text Non Empty",
"results": {
"time": 3219
}
},
{
"category": "Csharp > String Checksum",
"name": "Sha 256 Buffer Empty",
"results": {
"time": 1025
}
},
{
"category": "Csharp > String Checksum",
"name": "Sha 256 Buffer Non Empty",
"results": {
"time": 1188
}
},
{
"category": "Csharp > String Checksum",
"name": "Sha 256 Text Empty",
"results": {
"time": 4344
}
},
{
"category": "Csharp > String Checksum",
"name": "Sha 256 Text Non Empty",
"results": {
"time": 4495
}
},
{
"category": "Csharp > String Format",
"name": "Complex Variable Concatenate",
"results": {
"time": 567.1
}
},
{
"category": "Csharp > String Format",
"name": "Complex Variable Method",
"results": {
"time": 26090
}
},
{
"category": "Csharp > String Format",
"name": "Complex Variable Percent",
"results": {
"time": 527.6
}
},
{
"category": "Csharp > String Format",
"name": "No Op Constant Method",
"results": {
"time": 1260
}
},
{
"category": "Csharp > String Format",
"name": "Simple Constant Concatenate",
"results": {
"time": 2.985
}
},
{
"category": "Csharp > String Format",
"name": "Simple Constant Method",
"results": {
"time": 7633
}
},
{
"category": "Csharp > String Format",
"name": "Simple Constant Method Constant Dict",
"results": {
"time": 3043
}
},
{
"category": "Csharp > String Format",
"name": "Simple Constant Percent",
"results": {
"time": 3.059
}
},
{
"category": "Csharp > String Format",
"name": "Simple Variable Concatenate",
"results": {
"time": 34.28
}
},
{
"category": "Csharp > String Format",
"name": "Simple Variable Method",
"results": {
"time": 8307
}
},
{
"category": "Csharp > String Format",
"name": "Simple Variable Percent",
"results": {
"time": 50.01
}
},
{
"category": "Csharp > String Manipulation",
"name": "Begins With",
"results": {
"time": 45.48
}
},
{
"category": "Csharp > String Manipulation",
"name": "Bigrams",
"results": {
"time": 313.3
}
},
{
"category": "Csharp > String Manipulation",
"name": "Capitalize",
"results": {
"time": 2498
}
},
{
"category": "Csharp > String Manipulation",
"name": "Casecmp To",
"results": {
"time": 73.5
}
},
{
"category": "Csharp > String Manipulation",
"name": "Contains",
"results": {
"time": 14.96
}
},
{
"category": "Csharp > String Manipulation",
"name": "Count",
"results": {
"time": 121.5
}
},
{
"category": "Csharp > String Manipulation",
"name": "Countn",
"results": {
"time": 130.9
}
},
{
"category": "Csharp > String Manipulation",
"name": "Ends With",
"results": {
"time": 42.25
}
},
{
"category": "Csharp > String Manipulation",
"name": "Find",
"results": {
"time": 23.36
}
},
{
"category": "Csharp > String Manipulation",
"name": "Findn",
"results": {
"time": 19.71
}
},
{
"category": "Csharp > String Manipulation",
"name": "Insert",
"results": {
"time": 27.87
}
},
{
"category": "Csharp > String Manipulation",
"name": "Is Valid Filename",
"results": {
"time": 113.9
}
},
{
"category": "Csharp > String Manipulation",
"name": "Lpad",
"results": {
"time": 32.98
}
},
{
"category": "Csharp > String Manipulation",
"name": "Nocasecmp To",
"results": {
"time": 63.22
}
},
{
"category": "Csharp > String Manipulation",
"name": "Pad Decimals",
"results": {
"time": 291.9
}
},
{
"category": "Csharp > String Manipulation",
"name": "Pad Decimals Pre Constructed",
"results": {
"time": 51.4
}
},
{
"category": "Csharp > String Manipulation",
"name": "Pad Zeros",
"results": {
"time": 113.6
}
},
{
"category": "Csharp > String Manipulation",
"name": "Pad Zeros Pre Constructed",
"results": {
"time": 114.4
}
},
{
"category": "Csharp > String Manipulation",
"name": "Rfind",
"results": {
"time": 29.39
}
},
{
"category": "Csharp > String Manipulation",
"name": "Rfindn",
"results": {
"time": 65.1
}
},
{
"category": "Csharp > String Manipulation",
"name": "Rpad",
"results": {
"time": 38.79
}
},
{
"category": "Csharp > String Manipulation",
"name": "Similarity",
"results": {
"time": 561.6
}
},
{
"category": "Csharp > String Manipulation",
"name": "Simplify Path",
"results": {
"time": 2637
}
},
{
"category": "Csharp > String Manipulation",
"name": "Split",
"results": {
"time": 109.8
}
},
{
"category": "Csharp > String Manipulation",
"name": "Split Floats",
"results": {
"time": 683.7
}
},
{
"category": "Csharp > String Manipulation",
"name": "Substr",
"results": {
"time": 24.12
}
},
{
"category": "Csharp > String Manipulation",
"name": "To Camel Case",
"results": {
"time": 2317
}
},
{
"category": "Csharp > String Manipulation",
"name": "To Lower",
"results": {
"time": 51.38
}
},
{
"category": "Csharp > String Manipulation",
"name": "To Pascal Case",
"results": {
"time": 3692
}
},
{
"category": "Csharp > String Manipulation",
"name": "To Snake Case",
"results": {
"time": 2765
}
},
{
"category": "Csharp > String Manipulation",
"name": "To Utf 16 Buffer",
"results": {
"time": 60.21
}
},
{
"category": "Csharp > String Manipulation",
"name": "To Utf 32 Buffer",
"results": {
"time": 268.5
}
},
{
"category": "Csharp > String Manipulation",
"name": "To Utf 8 Buffer",
"results": {
"time": 34.16
}
},
{
"category": "Csharp > String Manipulation",
"name": "Uri Decode",
"results": {
"time": 206.6
}
},
{
"category": "Csharp > String Manipulation",
"name": "Uri Encode",
"results": {
"time": 274.9
}
},
{
"category": "Csharp > String Manipulation",
"name": "Validate Node Name",
"results": {
"time": 179.5
}
},
{
"category": "Csharp > String Manipulation",
"name": "Xml Escape",
"results": {
"time": 233.7
}
},
{
"category": "Csharp > String Manipulation",
"name": "Xml Unescape",
"results": {
"time": 6.415
}
}
],
"engine": {
"version": "v4.3.beta2.official",
"version_hash": "b75f0485ba15951b87f1d9a2d8dd0fcd55e178e4"
},
"system": {
"cpu_architecture": "x86_64",
"cpu_count": 12,
"cpu_name": "AMD Ryzen 5 1600 Six-Core Processor",
"os": "Linux"
}
}
GDScript benchmark results in comparison, on the same machine
{
"benchmarks": [
{
"category": "Gdscript > Alloc",
"name": "Deep Tree",
"results": {
"time": 336
}
},
{
"category": "Gdscript > Alloc",
"name": "Duplicate",
"results": {
"time": 2356
}
},
{
"category": "Gdscript > Alloc",
"name": "Fragmentation",
"results": {
"time": 4857
}
},
{
"category": "Gdscript > Alloc",
"name": "Wide Tree",
"results": {
"time": 313.2
}
},
{
"category": "Gdscript > Binary Trees",
"name": "Binary Trees 13",
"results": {
"time": 1075
}
},
{
"category": "Gdscript > Binary Trees",
"name": "Binary Trees 15",
"results": {
"time": 5204
}
},
{
"category": "Gdscript > Hello World",
"name": "Hello World",
"results": {
"time": 0.033
}
},
{
"category": "Gdscript > Lambda Performance",
"name": "Lambda Call",
"results": {
"time": 127.9
}
},
{
"category": "Gdscript > Mandelbrot Set",
"name": "Mandelbrot Set",
"results": {
"time": 10570
}
},
{
"category": "Gdscript > Merkle Trees",
"name": "Merkle Trees 13",
"results": {
"time": 4396
}
},
{
"category": "Gdscript > Merkle Trees",
"name": "Merkle Trees 15",
"results": {
"time": 22810
}
},
{
"category": "Gdscript > Nbody",
"name": "Nbody 1 000 000",
"results": {
"time": 16800
}
},
{
"category": "Gdscript > Nbody",
"name": "Nbody 500 000",
"results": {
"time": 8361
}
},
{
"category": "Gdscript > Spectral Norm",
"name": "Spectral Norm 100",
"results": {
"time": 143.1
}
},
{
"category": "Gdscript > Spectral Norm",
"name": "Spectral Norm 1000",
"results": {
"time": 13830
}
},
{
"category": "Gdscript > Spectral Norm",
"name": "Spectral Norm 500",
"results": {
"time": 3386
}
},
{
"category": "Gdscript > String Checksum",
"name": "Md 5 Buffer Empty",
"results": {
"time": 278.5
}
},
{
"category": "Gdscript > String Checksum",
"name": "Md 5 Buffer Non Empty",
"results": {
"time": 935.2
}
},
{
"category": "Gdscript > String Checksum",
"name": "Md 5 Text Empty",
"results": {
"time": 1038
}
},
{
"category": "Gdscript > String Checksum",
"name": "Md 5 Text Non Empty",
"results": {
"time": 1699
}
},
{
"category": "Gdscript > String Checksum",
"name": "Sha 1 Buffer Empty",
"results": {
"time": 301.7
}
},
{
"category": "Gdscript > String Checksum",
"name": "Sha 1 Buffer Non Empty",
"results": {
"time": 959.9
}
},
{
"category": "Gdscript > String Checksum",
"name": "Sha 1 Text Empty",
"results": {
"time": 1181
}
},
{
"category": "Gdscript > String Checksum",
"name": "Sha 1 Text Non Empty",
"results": {
"time": 1854
}
},
{
"category": "Gdscript > String Checksum",
"name": "Sha 256 Buffer Empty",
"results": {
"time": 523.9
}
},
{
"category": "Gdscript > String Checksum",
"name": "Sha 256 Buffer Non Empty",
"results": {
"time": 1656
}
},
{
"category": "Gdscript > String Checksum",
"name": "Sha 256 Text Empty",
"results": {
"time": 1807
}
},
{
"category": "Gdscript > String Checksum",
"name": "Sha 256 Text Non Empty",
"results": {
"time": 2961
}
},
{
"category": "Gdscript > String Format",
"name": "Complex Variable Concatenate",
"results": {
"time": 2795
}
},
{
"category": "Gdscript > String Format",
"name": "Complex Variable Method",
"results": {
"time": 5753
}
},
{
"category": "Gdscript > String Format",
"name": "Complex Variable Percent",
"results": {
"time": 5678
}
},
{
"category": "Gdscript > String Format",
"name": "No Op Constant Method",
"results": {
"time": 227.2
}
},
{
"category": "Gdscript > String Format",
"name": "Simple Constant Concatenate",
"results": {
"time": 16.29
}
},
{
"category": "Gdscript > String Format",
"name": "Simple Constant Method",
"results": {
"time": 1197
}
},
{
"category": "Gdscript > String Format",
"name": "Simple Constant Method Constant Dict",
"results": {
"time": 989.3
}
},
{
"category": "Gdscript > String Format",
"name": "Simple Constant Percent",
"results": {
"time": 17.51
}
},
{
"category": "Gdscript > String Format",
"name": "Simple Variable Concatenate",
"results": {
"time": 245.3
}
},
{
"category": "Gdscript > String Format",
"name": "Simple Variable Method",
"results": {
"time": 1262
}
},
{
"category": "Gdscript > String Format",
"name": "Simple Variable Percent",
"results": {
"time": 787
}
},
{
"category": "Gdscript > String Manipulation",
"name": "Begins With",
"results": {
"time": 35.67
}
},
{
"category": "Gdscript > String Manipulation",
"name": "Bigrams",
"results": {
"time": 981.2
}
},
{
"category": "Gdscript > String Manipulation",
"name": "Capitalize",
"results": {
"time": 2635
}
},
{
"category": "Gdscript > String Manipulation",
"name": "Casecmp To",
"results": {
"time": 31.32
}
},
{
"category": "Gdscript > String Manipulation",
"name": "Contains",
"results": {
"time": 33.08
}
},
{
"category": "Gdscript > String Manipulation",
"name": "Contains Gdscript In",
"results": {
"time": 15.72
}
},
{
"category": "Gdscript > String Manipulation",
"name": "Count",
"results": {
"time": 320.1
}
},
{
"category": "Gdscript > String Manipulation",
"name": "Countn",
"results": {
"time": 707.9
}
},
{
"category": "Gdscript > String Manipulation",
"name": "Ends With",
"results": {
"time": 37.2
}
},
{
"category": "Gdscript > String Manipulation",
"name": "Find",
"results": {
"time": 113.5
}
},
{
"category": "Gdscript > String Manipulation",
"name": "Findn",
"results": {
"time": 142.2
}
},
{
"category": "Gdscript > String Manipulation",
"name": "Get Slice",
"results": {
"time": 132.5
}
},
{
"category": "Gdscript > String Manipulation",
"name": "Get Slice Count",
"results": {
"time": 80.41
}
},
{
"category": "Gdscript > String Manipulation",
"name": "Humanize Size",
"results": {
"time": 1257
}
},
{
"category": "Gdscript > String Manipulation",
"name": "Insert",
"results": {
"time": 328.7
}
},
{
"category": "Gdscript > String Manipulation",
"name": "Is Valid Filename",
"results": {
"time": 1477
}
},
{
"category": "Gdscript > String Manipulation",
"name": "Lpad",
"results": {
"time": 245.9
}
},
{
"category": "Gdscript > String Manipulation",
"name": "Naturalnocasecmp To",
"results": {
"time": 34.03
}
},
{
"category": "Gdscript > String Manipulation",
"name": "Nocasecmp To",
"results": {
"time": 63.98
}
},
{
"category": "Gdscript > String Manipulation",
"name": "Pad Decimals",
"results": {
"time": 924
}
},
{
"category": "Gdscript > String Manipulation",
"name": "Pad Decimals Pre Constructed",
"results": {
"time": 112.7
}
},
{
"category": "Gdscript > String Manipulation",
"name": "Pad Zeros",
"results": {
"time": 630.5
}
},
{
"category": "Gdscript > String Manipulation",
"name": "Pad Zeros Pre Constructed",
"results": {
"time": 363.1
}
},
{
"category": "Gdscript > String Manipulation",
"name": "Rfind",
"results": {
"time": 98.27
}
},
{
"category": "Gdscript > String Manipulation",
"name": "Rfindn",
"results": {
"time": 357.6
}
},
{
"category": "Gdscript > String Manipulation",
"name": "Rpad",
"results": {
"time": 187
}
},
{
"category": "Gdscript > String Manipulation",
"name": "Rsplit",
"results": {
"time": 633.8
}
},
{
"category": "Gdscript > String Manipulation",
"name": "Similarity",
"results": {
"time": 961.3
}
},
{
"category": "Gdscript > String Manipulation",
"name": "Simplify Path",
"results": {
"time": 2022
}
},
{
"category": "Gdscript > String Manipulation",
"name": "Split",
"results": {
"time": 594.4
}
},
{
"category": "Gdscript > String Manipulation",
"name": "Split Floats",
"results": {
"time": 419.2
}
},
{
"category": "Gdscript > String Manipulation",
"name": "Substr",
"results": {
"time": 93.82
}
},
{
"category": "Gdscript > String Manipulation",
"name": "To Camel Case",
"results": {
"time": 1681
}
},
{
"category": "Gdscript > String Manipulation",
"name": "To Lower",
"results": {
"time": 384.4
}
},
{
"category": "Gdscript > String Manipulation",
"name": "To Pascal Case",
"results": {
"time": 3011
}
},
{
"category": "Gdscript > String Manipulation",
"name": "To Snake Case",
"results": {
"time": 2069
}
},
{
"category": "Gdscript > String Manipulation",
"name": "To Utf 16 Buffer",
"results": {
"time": 169.7
}
},
{
"category": "Gdscript > String Manipulation",
"name": "To Utf 32 Buffer",
"results": {
"time": 107.2
}
},
{
"category": "Gdscript > String Manipulation",
"name": "To Utf 8 Buffer",
"results": {
"time": 181.2
}
},
{
"category": "Gdscript > String Manipulation",
"name": "To Wchar Buffer",
"results": {
"time": 115.8
}
},
{
"category": "Gdscript > String Manipulation",
"name": "Uri Decode",
"results": {
"time": 626
}
},
{
"category": "Gdscript > String Manipulation",
"name": "Uri Encode",
"results": {
"time": 614.5
}
},
{
"category": "Gdscript > String Manipulation",
"name": "Validate Filename",
"results": {
"time": 2623
}
},
{
"category": "Gdscript > String Manipulation",
"name": "Validate Node Name",
"results": {
"time": 154.4
}
},
{
"category": "Gdscript > String Manipulation",
"name": "Xml Escape",
"results": {
"time": 870.6
}
},
{
"category": "Gdscript > String Manipulation",
"name": "Xml Unescape",
"results": {
"time": 111.2
}
}
],
"engine": {
"version": "v4.3.beta2.official",
"version_hash": "b75f0485ba15951b87f1d9a2d8dd0fcd55e178e4"
},
"system": {
"cpu_architecture": "x86_64",
"cpu_count": 12,
"cpu_name": "AMD Ryzen 5 1600 Six-Core Processor",
"os": "Linux"
}
}