godotengine / godot-benchmarks

Collection of benchmarks to test performance of different areas of Godot
MIT License
121 stars 29 forks source link

[Call to Action] Benchmarks for the benchmark server #36

Open reduz opened 11 months ago

reduz commented 11 months ago

Creation of benchmarks for the benchmarks server

This document is a compilation of benchmarks suggested by maintainers and contributors from all areas of the engine.

Our goal is to create a limited amount of benchmarks where we can track the progress and optimization improvements we do to the engine every day and how they reflect on benchmarks. Likewise it will help us better spot when we have a performance regression.

The benchmarks should be relatively short and running all the benchmarks should not take a very long time (an hour at much).

Because creating all these benchmarks is laborious, we are asking for help to community and contributors, so we can organize the creation of all these (and obviously suggest more, but we need to ensure the ones listed here are completed first).

For this, we have created a #benchmarks channel in our Rocket Chat (chat.godotengine.org). If you are interested in lending us a hand and implementing the benchmarks from this list, please feel free to join and say hi.

Ultimately the goal is that these benchmarks are contributed to this repository as pull requests.

Benchmark Methodologies

Depending on the type of benchmark, different methodologies need to be used:

Benchmark format

Benchmarks are written like this:

When a benchmark belongs to groups, the benchmark (graph) will be named after the group and contain all the plots of the individual benchmarks belonging to it, helping to contextualize and compare.

Otherwise, if no group is specified, the benchmark is standalone with a single plot.

List of Benchmarks

These are all the benchmarks that have to be created. As they are submitted, the checkboxes will be ticked.

Core

Math

3D Rendering

CPU Benchmarks

GPU Benchmarks

2D Rendering

2D Physics

3D Physics

GDScript

C

GodotCPP (C++)

Asset importing

Scene nodes (base Node class)

Animation

Navigation

GUI

Editor

Networking (no idea how to benchmark this, you are the expert)

Chubercik commented 4 months ago

A few boxes in the Math section can be ticked off :)

coppolaemilio commented 3 months ago

Can any checkbox be marked as done after #65 was merged?

Calinou commented 3 months ago

Can any checkbox be marked as done after #65 was merged?

Yes, I've just done that :slightly_smiling_face:

OverloadedOrama commented 3 months ago

Seems like some more benchmarks can be ticked off:

Implemented by #41:

Implemented by #47:

Implemented by #48:

Implemented by #49:

Implemented by #53:

Implemented by #54:

OverloadedOrama commented 2 months ago

Missed this in my previous comment, but the scene nodes benchmarks also need to be ticked off, as they were implemented by #44.