2

Perzentil-Frameraten sollten besser auf Basis einer zeitlichen Skala ermittelt werden

Ein sehr interessanter Artikel seitens Yosoygames widmet sich der Frage der korrekten Erstellung von Perzentil-Frameraten. Jene basieren bekannterweise auf der Idee, nicht den absoluten Minimum-Wert anzugeben, welcher erfahrungsgemäß über irgendwelche Engine-Schluckaufs zustandekommt und daher kein vernünftiger allgemeingültiger Maßstab ist, was im Bereich der niedrigsten Frameraten passiert. Daher wird üblicherweise jener Wert genommen, welcher in einer größenmäßigen Auflistung der Frametimes an 1% von unten her oder 99% von oben her steht, andere verwendete Varianten sind 0,1% / 99,9% oder auch 5% / 95%. Die Aussage von Yosoygames ist nunmehr, dass jene 0,1%, 1% oder 5% von den Benchmark-Tools oftmals an der falschen Stelle genommen werden: Man entnimmt jene aus einer Anzahl-basierten Auflistung der Frames – in deren Beispiel jenes Frame, welche bei 5% von unten auf einer mengenmäßigen Skala liegt.

Zielsetzung mathematisches Modell
durchschnittliche Framerate insgesamter Performance-Eindruck Anzahl aller aufgelaufenen Frame / benötigte Zeit
(gewöhnliche) Minimum-Framerate Aussage über die minimalste Spielbarkeit Frametime des absolut niedrigsten Frames
Perzentil-Framerate Aussage über die tatsächliche minimale Spielbarkeit Frametime des an x% (von unten her) liegenden Frames

In dieser mengenmäßigen Skala sehen Yosoygames nunmehr ein Problem – und untermauern jenes mit einem (stark) hypothetischen Beispiel. Angenommen ein Benchmark wirft in der ersten Stunde regelmäßig 60 fps, die zweite Stunde läuft dann aber so quälend langsam, dass nur ein einziges Frame gerendet wird. Es werden ergo in der ersten Stunde 216'000 Frames erzeugt, mit der gesamten zweiten Stunde kommt nur ein weiteres Frame hinzu. Von den ingesamt erzeugten 216'001 Frames sind also die ersten 216'000 Frames schnell, nur das allerletzte ist langsam. In einer mengenmäßigen Skala liegt das für die Perzentil-Framerate gewünschte Frame bei 5% von unten her gesehen nunmehr an Stelle 205'200 und zeigt logischerweise eine Frametime von 16,666ms (umgerechnet 60 fps) an. Damit würde die Perzentil-Framerate in diesem hypothetischen Beispiel der maximalen Framerate entsprechen, entgegen dem Ansatz, einen gewissen Minimum-Wert abzubilden. Und dies obwohl in diesem Beispiel die zeitliche Hälfte des Benchmarks im absoluten Frameraten-Keller lag – ein Frame in einer Stunde ergibt schließlich eine herzerwärmende Framerate von 0,0002777 fps.

Jenes hypothetische Beispiel deckt somit eine Schwachstelle der bisherigen Erfassungsmethode auf. Es wird einfach anhand einer mengenmäßigen Skala abgezählt, bis man an die gewünschte prozentuale Stelle gekommen ist. Diese mengenmäßige Skala beachtet nicht, dass besonders schlechte Frames mehr Zeit benötigen, damit im Benchmark jedoch auf keine große Anzahl kommen und somit ihr Aussage-Gewicht nicht wirklich in die Waagschale werfen können. Der Vorschlag von Yosoygames besteht nun darin, anstatt einer mengenmäßige Skala eine zeitmäßige Skala zu bilden. Ausgesucht wird nicht mehr jenes Frame, welches im vorstehenden Beispiel an nummerischer Stelle 205'200 steht – sondern in einer zeitlichen Skala bei 5% in der von unten her betrachten Zeit. Dies würde in diesem Fall einfach sein, denn bei 5% der Benchmark-Zeit (von unten her) steckt man noch immer im diesem grässlichen einen Frame mit der Berechnungszeit von einer ganzen Stunde fest.

Die Perzentil-Framerate wäre nach der Umstellung auf diese Berechnungsmethode (auf eine zeitliche Skala) somit nicht mehr bei 60 fps, sondern bei 0,0003 fps. Jene Perzentil-Framerate bildet den für dieses hypothetische Beispiel erstellten Benchmark-Ablauf sicherlich besser ab, als eine Angabe von 60 fps. Nebenbei sind jene 60 fps gemäß der herkömmlichen Betrachtungsweise schon deswegen irrational, da die Durchschnittsframerate des gesamten Benchmarks durch die überschwache zweite Stunde natürlich nur bei 30 fps liegt (216'001 Frames durch 7200 Sekunden). Logischerweise sollte ein (per se niedrige Werte anzustrebendes) Perzentil niemals klar höher als die Durchschnitts-Framerate ausfallen, dies zeigt eine grundsätzliche mathematische Schwäche der bisherigen Betrachtungsweise bzw. Perzentil-Ermittlung auf.

Perzentil-Ermittlung bei 5% nummerische Ermittlung zeitliche Ermittlung
hypothetisches Beispiel: Benchmark mit einer Stunde á konstant 60 fps (216'000 Frames), eine weitere Stunde mit nur einem einzigen Frame (zusammen 216'001 Frames in zwei Stunden)
5% Perzentil ergibt Frame No. 205'200 No. 216'001
Perzentil-Framerate (P5, 95th) 60 fps 0,0003 fps
durchschnittliche Framerate 30 fps 30 fps

Sicherlich ist speziell ein solcher Fall in der Praxis noch nie passiert, in selbiger dürfte sich nur eine leichte, im kompletten Zahlenwust fast untergehende Verschiebung der Perzentil-Framerate zugunsten höherklassiger Frames ergeben. Eine fehlerhafte Beeinflussung bleibt allerdings weiterhin vorhanden: Nur weil man den Fehler nicht augenscheinlich sehen kann, bedeutet es nicht, dass keine Werte-Beeinflussung stattfindet. Die Perzentil-Erfassungsmethode nach mengenmäßigen Skala wird immer alle Frames gleich stark gewichten, beachtet dabei aber nicht, dass besonders langsame Frames um so länger am Bildschirm zu sehen sind – und somit eigentlich wirkmächtiger sein sollten. Die Perzentil-Erfassungsmethode nach zeitmäßigen Skala zollt dieser grundsätzlichen Überlegung Rechnung und kommt somit dem ursprünglichen Gedanken an eine minimale Framerate wohl näher.

Die Hardware-Tester können an diesem Punkt erst einmal wenig tun, denn es wäre nun Aufgabe der Benchmarktool-Entwicker, über diese Eingabe nachzudenken. Technisch spricht nichts dagegen, diesen Ansatz zu integrierten, die Zahlenbasis ist dieselbe und nur deren Auswertung verändert sich. Ob man dies sofort zum primären Maßstab macht oder aber eine entsprechende Option zur Auswahl anbietet, nach welcher Skala die Perzentile ermittelt werden, bleibt den Tool-Entwicklern überlassen. Es handelt sich letztlich nur um eine kleine Verbesserung, welche in den meisten Fällen nur eine kaum merkbare Ergebnis-Verfeinerung erbringen dürfte – über welche man allerdings aufgrund der vorstehend dargelegten Argumente dennoch nachdenken sollte.