mirror of
https://github.com/godotengine/godot-benchmarks.git
synced 2026-01-05 10:10:08 +03:00
118 lines
3.7 KiB
HTML
118 lines
3.7 KiB
HTML
{{ define "main" }}
|
||
|
||
{{ $benchmarks := .Site.Data.data.benchmarks}}
|
||
{{ $graphs := .Site.Data.data.graphs}}
|
||
|
||
<main aria-role="main">
|
||
<p>
|
||
This page tracks <a href="https://godotengine.org/">Godot Engine</a> performance running on a
|
||
<a href="https://github.com/godotengine/godot-benchmarks">benchmark suite</a>.
|
||
Benchmarks are run on a daily basis to track performance improvements and
|
||
regressions over time.
|
||
</p>
|
||
|
||
<h2>Graphs</h2>
|
||
<div style="display: flex; align-items: center; margin-bottom: 1em;">
|
||
<div style="flex-grow: 3;">
|
||
Normalized (percentage of the average time). <strong>Lower is better on all graphs.</strong>
|
||
</div>
|
||
</div>
|
||
<div style="display: grid; grid-template-columns: 50% 50%; gap: 1em;">
|
||
{{ range $graphs }}
|
||
<div style="display: flex; flex-direction: column; gap: 1em;">
|
||
<div style="align-self: center;">
|
||
<a href="/graph/{{ .id }}">{{ .title }}</a>
|
||
</div>
|
||
<div id="{{ .id }}">
|
||
</div>
|
||
</div>
|
||
{{ end }}
|
||
</div>
|
||
|
||
<h2>Latest benchmark runs</h2>
|
||
<ul id="recent-benchmarks">
|
||
{{ range sort $benchmarks ".date" "desc" | first 10}}
|
||
<li>
|
||
<a href="/benchmark/{{ .date }}_{{ .commit }}">{{ .date }}<code>{{ slicestr .engine.version_hash 0 9 }}</code></a>
|
||
</li>
|
||
{{ end }}
|
||
<li><a onclick="showAllBenchmarks()" style="cursor: pointer">Show all benchmarks...</a></li>
|
||
</ul>
|
||
<ul id="all-benchmarks" style="display: none">
|
||
{{ range sort $benchmarks ".date" "desc"}}
|
||
<li>
|
||
<a href="/benchmark/{{ .date }}_{{ .commit }}">{{ .date }}<code>{{ slicestr .engine.version_hash 0 9 }}</code></a>
|
||
</li>
|
||
{{ end }}
|
||
</ul>
|
||
<hr>
|
||
|
||
<h2>Benchmarking machine</h2>
|
||
<p>
|
||
To allow for direct GPU access and avoid performance fluctuations due to the
|
||
use of a shared host, benchmarks are run on a dedicated server with the
|
||
following hardware:
|
||
</p>
|
||
<table class="table-first-column-align-right">
|
||
<tr>
|
||
<td>CPU</td>
|
||
<td>Intel Core i5-12400</td>
|
||
</tr>
|
||
<tr>
|
||
<td>RAM</td>
|
||
<td>16 GB (2×8 GB DDR4-3000 CL16)</td>
|
||
</tr>
|
||
<tr>
|
||
<td>SSD</td>
|
||
<td>Samsung 980 500 GB (M.2)</td>
|
||
</tr>
|
||
<tr>
|
||
<td>GPU 1 (integrated)</td>
|
||
<td>🔵 Intel UHD Graphics 730</td>
|
||
</tr>
|
||
<tr>
|
||
<td>GPU 2 (dedicated)</td>
|
||
<td>🔴 AMD Radeon RX 550</td>
|
||
</tr>
|
||
<tr>
|
||
<td>GPU 3 (dedicated)</td>
|
||
<td>🟢 NVIDIA GeForce GT 1030</td>
|
||
</tr>
|
||
<tr>
|
||
<td>Operating system</td>
|
||
<td>Fedora 40 x86_64</td>
|
||
</tr>
|
||
</table>
|
||
<p>
|
||
All core and memory clocks are kept at stock frequencies. When running
|
||
benchmarks (except for compiling the engine), The CPU governor is set to
|
||
<code>performance</code> to improve result consistency. The OS is kept in a
|
||
default configuration as closely as posible. The machine is not running any
|
||
other tasks in parallel – this page is served from GitHub Pages.
|
||
</p>
|
||
<p>
|
||
Benchmarks that make use of the GPU are run 3 times (once on each GPU with a release build).
|
||
Benchmarks that don't make use of the GPU are run twice (once with a debug build, once with a release build).
|
||
</p>
|
||
</main>
|
||
{{ end }}
|
||
|
||
{{ define "javascript" }}
|
||
<script language="javascript" type="text/javascript" src="{{ "/graphs.js" | urlize | relURL }}"></script>
|
||
<script>
|
||
// Update all graphs.
|
||
function updateGraphs() {
|
||
let selectTag = document.querySelector("#metric");
|
||
Database.graphs.forEach((graph) => {
|
||
displayGraph(`#${graph.id}`, graph.id, "compact");
|
||
})
|
||
}
|
||
updateGraphs();
|
||
|
||
function showAllBenchmarks() {
|
||
document.getElementById("recent-benchmarks").style.display = "none";
|
||
document.getElementById("all-benchmarks").style.display = "block";
|
||
}
|
||
</script>
|
||
{{ end }}
|