Commit Graph

152 Commits

Author SHA1 Message Date
Lukas Tenbrink
2eed025433 Add dev and SCU build benchmarks (#125)
This adds benchmarks to track build time and build memory use
with dev and scu builds.

Dev and scu builds are what (regular) contributors will be running
most often, so it makes sense to benchmark them for targeted optimization.
2025-10-24 01:34:41 +02:00
Hugo Locurcio
b26eb4c5a1 Fix crash on import due to GDExtension documentation generation
`--quit-after` is not reliable in this scenario, requiring a value
as high as 12 to reliably import resources without crashing.

`--import` handles this in a more robust manner.
2025-09-28 17:40:50 +02:00
Hugo Locurcio
98c18cfa27 Update project files to Godot 4.5 2025-09-28 17:24:12 +02:00
Lukas Tenbrink
5d86d535c9 Add Godot 4.5 release date to graphs (#123) 2025-09-17 18:57:33 +02:00
Lukas Tenbrink
86070012e1 Update contributing links to point to the new contributing website (#122) 2025-09-14 01:53:18 +02:00
Lukas Tenbrink
a6092b9c49 Put graphs into groups in detail view (#121) 2025-08-27 17:47:00 +02:00
Lukas Tenbrink
125ae86349 In the overview, use the median instead of mean for robustness to outliers (#119)
- Also plot min / max and interquartile range (IQR).
2025-08-22 02:21:09 +02:00
Lukas Tenbrink
caf532112e Add border radius to the graph divs to improve style (#120) 2025-08-20 15:34:46 +02:00
Lukas Tenbrink
f4ceaf0c71 Add vertical lines on graphs for Godot release dates (#118)
This adds vlines for Godot releases to add some context to the timeline.
2025-08-20 01:46:30 +02:00
Lukas Tenbrink
5a0c43c8c7 Replace ApexCharts with Plotly.js (#117)
- Use 1200px as website width, and make it a 3-column layout.
- Switch graphs to log y scale, and show 0.2x to 5x by default.

ApexCharts currently struggles with log y scales, glitches with outliers
(at least in Safari), and does not support extensive graph interaction
(like double clicking traces to isolate, and the toolbar).
2025-08-20 01:32:28 +02:00
Lukas Tenbrink
d3425f06b3 General graphing updates: Median, normalization, rounding, tooltips, toolbar (#116)
- Always use relative values to display benchmarks
  (actual values are platform dependent and meaningless).
- Use the median of the last 10 values as middle, such that new benchmarks
  are always on the graph.
- Don't round values in the data aggregator, round them on visualization
   instead.
- Use toolbar in detail charts.
- Don't use shared tooltip.
2025-08-08 17:12:50 +02:00
Hugo Locurcio
5101337940 Fix upload of benchmark results in run-benchmarks.sh 2025-07-07 21:54:50 +02:00
Hugo Locurcio
f735129892 Fix extra JSON missing top-level braces in run-benchmarks.sh 2025-07-01 23:11:13 +02:00
Hugo Locurcio
b1e680973e Build GDExtension in run-benchmarks.sh 2025-07-01 18:46:15 +02:00
Hugo Locurcio
8c78452842 Fix run-benchmarks script referencing variables before they are defined 2025-07-01 17:21:07 +02:00
Lukas Tenbrink
ba30c2346e Use datetime x-axis for graphs (#115)
Previously, ticks on the x-axis are currently positioned perfectly sequentially.
This can skew results when timing between samples is inconsistent.

This graphing bug partially explained some jumps in the current graphs.

---------

Co-authored-by: Hugo Locurcio <hugo.locurcio@hugo.pro>
2025-07-01 15:42:03 +02:00
Lukas Tenbrink
8be0468d77 Add graphs for binary size, build time, build memory use, startup time, and memory use (#111)
-  Change the storage type for extra information to the same as the other benchmarks.
2025-06-25 20:17:14 +02:00
Hugo Locurcio
fb8ea10856 Update benchmark server information now that it's been upgraded to Fedora 42 2025-06-24 15:55:30 +02:00
Hugo Locurcio
118341742d Add Skeleton3D and AnimationTree benchmarks (#105)
These benchmarks represent stress tests that challenge the CPU
with lots of animation calls.

This also adds a default environment that makes it easier to distinguish
objects from the background, even when there is no light in the scene.
2025-06-16 07:48:15 -07:00
Matthew Love
a6ece884d3 Update to .NET 8.0 and SDK 4.4.1 (#110) 2025-05-19 01:28:26 +02:00
Matthew Love
9ca0ec69c1 Readd missing header needed for Windows in GDExtension (#109) 2025-05-19 01:28:06 +02:00
Edward Moulsdale
1874eaef7a Fix sorting on Chromium-based browsers (#107) 2025-02-06 15:20:13 +01:00
YYF2333
314f67fa45 Fix benchmarks not being detected in exported version (#106)
Co-authored-by: Hugo Locurcio <hugo.locurcio@hugo.pro>
2025-02-01 20:21:56 +01:00
Hugo Locurcio
3f6fd7f94e Add more graphs to the homepage
- Remove Crypto graphs as the results are highly variable across runs.
2025-01-13 22:15:54 +01:00
Thaddeus Crews
ab271e8ee4 Add missing C# .uid files (#101) 2024-12-11 09:36:57 +01:00
Adam Scott
33360cf4bd Remove include of non-standard and not needed <malloc.h> (#103)
This breaks compilation on macOS.
2024-12-11 09:36:08 +01:00
Thaddeus Crews
5619b49b65 Core: Add missing .uid files (#98) 2024-12-10 16:05:49 +01:00
Thaddeus Crews
9bb8e216ce Style: Add clang-format, apply to GDExtension (#100) 2024-12-10 16:05:29 +01:00
Pedro J. Estébanez
a8ee8585b5 Fix build errors on MSVC (#94) 2024-12-07 08:36:57 +01:00
Lukas Tenbrink
31c952684a Use int64_t instead of long for int64 TypedArray (#97)
Fixes compile issues on macOS / clang.
2024-12-03 15:37:08 +01:00
Lukas Tenbrink
055086b778 Add compile_commands.json to the GDExtension's .gitignore (#96)
`compile_commands.json` is required for many IDEs and can be generated using
`scons compiledb=yes compile_commands.json`.

Co-authored-by: Hugo Locurcio <hugo.locurcio@hugo.pro>
2024-12-03 15:36:38 +01:00
Hugo Locurcio
3b762e82ea Only display GPU metrics on result pages if available for the given benchmark
Intel GPU results are not available for earlier benchmarks
(and NVIDIA GPUs later on).
2024-11-30 19:08:56 +01:00
Hugo Locurcio
c49d4c6c4c Run benchmarks on NVIDIA GPU 2024-11-27 15:09:46 +01:00
Hugo Locurcio
34a1c24f95 Resave all scenes and scripts on Godot 4.4.dev5, fix GDScript warnings
This will avoid large diffs later on.

This also fixes GDScript warnings across the codebase.
2024-11-27 15:00:18 +01:00
Hugo Locurcio
9ad00f6e47 Show the 10 most recent benchmarks on the homepage only at first (#92)
The user can click "Show all benchmarks..." at the end to reveal
the full list of benchmarks.

Benchmarks are also now ordered from newest to oldest, instead
of from oldest to newest.
2024-11-07 14:33:40 +01:00
Pedro J. Estébanez
0d0508f719 Add ObjectDB benchmark (#95) 2024-10-28 14:55:04 +01:00
Emmanouil Papadeas
13e5f397e8 Add some editor startup benchmarks (#81)
Co-authored-by: Hugo Locurcio <hugo.locurcio@hugo.pro>
2024-10-01 00:26:49 +02:00
Hugo Locurcio
ead3265fb4 Flush stdout on print to ensure it appears in systemd's journal logs
This ensures release builds use the same behavior as debug builds here.
The benchmarks project does not spam print messages anyway, so performance
should be identical to before.
2024-09-16 23:54:57 +02:00
Hugo Locurcio
c216d2182b Add warning about Chromium-based browser bug to index page
- Make the "lower is better" note more prominent.
2024-08-19 23:24:26 +02:00
Emmanouil Papadeas
460494848a Port GDScript benchmarks to C++ (#86)
Co-authored-by: Hugo Locurcio <hugo.locurcio@hugo.pro>
2024-08-04 23:13:59 +02:00
Emmanouil Papadeas
bfd8458b7a Port GDScript benchmarks to C# (#84) 2024-08-04 22:53:11 +02:00
Thaddeus Crews
b8827a41b2 Style: Unify formatting, add .editorconfig (#88) 2024-07-28 23:28:09 +02:00
Hugo Locurcio
375cec369a Update READMEs to use GitHub admonition syntax, use --import CLI argument 2024-07-17 01:37:33 +02:00
Emmanouil Papadeas
ed0d1f62f0 Add a command-line argument to toggle visuals in the physics and navigation agents benchmarks (#85)
* Add an option to toggle visuals in the moving navigation agents benchmarks
* Toggle visuals off by default
* Create a new visualize command line argument
2024-07-15 19:17:12 +02:00
Emmanouil Papadeas
6606590ea0 Add some runtime asset importing/exporting benchmarks (#80)
* Import gltf, fbx, 200 images and export gltf
* Import 50 ogg files on runtime
2024-07-15 18:40:30 +02:00
Emmanouil Papadeas
cdea241009 Fix C# benchmarks not being able to load, add ability to change benchmark time limit (#82)
- Allow the benchmark time limit to be changed by C# scripts.
  - Continuation of #73, fixes a crash when running C# physics benchmarks.
    Also sets the C# physics benchmarks to 10 seconds.
- Fix C# benchmarks not being loaded.
2024-06-28 20:06:07 +02:00
Emmanouil Papadeas
dddd717a4d Fix mistakes with binary trees & spectral norm (#83)
- Fix spectral norm incorrect inputs.
- Fix binary trees.
- Improve spectral norm static typing.
- Use the `fill()` method.
- Use static typing for left and right arrays.
2024-06-26 23:58:39 +02:00
Matthew Murphy
d2a77c7247 Add Array function benchmarks (#75) 2024-06-24 23:11:06 +02:00
Emmanouil Papadeas
8f36c32405 Add Navigation benchmarks (#78)
Co-authored-by: Hugo Locurcio <hugo.locurcio@hugo.pro>
2024-06-24 23:09:12 +02:00
Emmanouil Papadeas
2967527f82 Add animated models benchmarks (#79) 2024-06-24 22:48:36 +02:00