Files
godot-benchmarks/web/layouts/index.html
2025-02-06 15:20:13 +01:00

118 lines
3.7 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{{ 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 }}