Performance abfragen / vergleichen

  • Hallo,


    gibt es eine Möglichkeit oder ein Workflow wie man die Performance von bestimmten Objekten checken kann oder der gesamten Szene?
    Mit den Objekten meine ich, als Beispiel: Ich habe 2 Objekte. Ich haue erst das erste Objekt 1000x in die Szene und schaue wie es auf die Performance geht und danach lösch ich alles und mache das selbe mit dem zweiten Objekt. So dass ich dann vergleichen kann welches der beiden Objekte performanter ist.
    Idealerweise wäre es schon toll wenn man irgendwelche Werte ablesen kann bei nur einem Objekt :D


    Da kann man sich doch bestimmt irgendwas anzeigen lassen oder? Drawcalls? Memory Used? wie stark die Graka beim Rendern arbeiten muss etc.
    FPS ist dabei ein Witz. Die sagt meistens nie was aus oder da brauch es schon sehr viel um diese runter zu treiben. Aber dann ist es eher schon ein Stresstest. Was ich ja möchte ist ein direkter Vergleich von 2 Assets welche davon performanter ist wenn ich diese mehrfach benutzen würde.


    Jemand schonmal solch Vergleiche gemacht?

  • Damit habe ich mich zwar noch nie so beschäftigt, aber du könntest einen Zähler in das Objekt einbauen mit einem Eventtimer, der nach x Sekunden das Ganze stoppt und dann könntest du hinterher die durchlaufenen Zyklen anzeigen lassen.


    Bestimmt kann man auch anhand von Deltatime usw. eine Formel aufbauen.


    Das wären so spontan die beiden Möglichkeiten die mir einfallen.


    Weil, wenn zu zwei Objekte vergleichen willst, dann musst wohl selber eine Messmethode in die Objekte einbauen. Hat dann auch gleich den Vorteil, dass du beide, oder noch mehr Objekte, gleichzeitig in der Szene testen kannst.

  • Hey zusammen


    Die Engine hat viele Performance Tools.

    Ein schneller Befehl ist "stat unit", den kennst du vermutlich schon. Er zeigt dir nicht nur die Zeit für ein Frame also FPS, sondern auch die Zeit der der Game Thread braucht, also für CPU Code (Blueprints), die Draw zeit und GPU Zeit. Ideal für die erste Indikation wo das Performance Bottleneck ist.


    Je nachdem wo das Problem liegt, kannst du mit weiteren Commands genauer auf den Grund gehen. Hier eine Liste davon.

    Für dein Ziel wäre das dann vielleicht stat Uobject, dass dir die Performance von UObjects anzeigt.


    Tiefgreifender gehts mit Profiling über mehrere Frames. Der Command ist auch in der Liste, nämlich stat StartFile zum starten der Aufzeichnung und stat StopFile zum stoppen. Es erlaub dir die CPU und GPU über einen längeren Verlauf aufzuzeichnen.

    Es speichert das unter deinem Project Saved/Profiling. Die Engine kann das direkt anzeigen. Dazu unter Window->Developer->Session Fronted. Dort kannst du das File unter Profiling laden und anschauen. Dort kannst du alles auswählen und analysieren was du brauchst.

    Auch einzelen Objekte. Vergiss nicht smoothing und FPS Cap auszumachen, sonst sind die Werte falsch. Am Besten testest du das auch im Standalone Game.


    Gruss