RAM vs FPS

  • Hallo zusammen,


    nach ewigen Schwierigkeiten was die Performance in ArmA3 angeht, dem endlosen studieren von irgendwelchen Performance Guides und dem Rumspielen mit Startup-Parametern wollt ich kurz meine Erfahrung teilen.


    Kurz.... es ist alles Scheiss.


    Das performance kritischste ist auch nicht die ultimativ hochgetaktete CPU oder der RAM sondern es sind die max. kürzesten Latenzen des RAMs.


    Wir haben das mit zwei Systemen mal durch getestet. Sys 1 ist ein auf 5GHz übertakteter i7 (7700k) + 1070er GForce und Sys 2 ist ein 1700er Ryzen @ 3.8GHz (mein Sys) mit Radeon 470 4G.


    Zuerst das i7 Sys: Wenn der CPU Takt bei 5GHz festgenagelt wird und man den RAM Takt zusammen mit den Timings verändert, sieht man, wie die FPS im YAAB Benchmark (Steam Workshop) rapide ansteingen. Am stärksten gegen Ende weil dies ein dramatischer Takt Sprung von 3600MHz auf 4200MHz bei fast gleichen Timings ist, sprich die Latenzen massiv sinken. Umgekehrt bringt eine Erhöhung des CPU Taktes zwar auch einiges, selbst mit 5GHz bleibt der i7 aber vollkommen RAM limitiert und erreicht im YAAB nichtmal 50 FPS.



    Bei 5GHz Takt und 2400MHz RAM erreicht das Sys max. 46FPS im YAAB. Beim selben CPU Takt aber 4200MHz CL17 + angezogenen Subtimings sinds dann etwa 80 FPS.


    Bei meinem System, einem Ryzen 7 1700 @ 3.8GHz mit einer 470 4gb ist es ein sehr ähnliches Spiel, außer das der Ryzen noch deutlicher profitiert.


    EDIT: Der Übersichtlichkeit und Aktualität halber update ich diese Grafik mit den Werten eines Kollegen und seines Ryzen 2700x. Diese sind allerdings @Standard Video Preset + S Key und daher nicht direkt mit den Werten des i7 oben vergleichbar, welche @Low Preset und ohne S-Key gemacht wurden (und daher erheblich höher sind).




    Denke der Trend ist sehr eindeutig und bedarf eigentlich keiner weiteren Beschreibung, aber zum einhämmern: Das ist alles bei identischem CPU Takt!


    Mit meiner mittlerweile aktualisierten Kiste mit einem 2600x (nicht übertaktet) und 3600MHz CL15 RAM komme ich im YAAB auf 1080p @standard Preset auf 58.3 FPS im Schnitt. Grafikkarte ist noch immer die alte Radeon RX470 4gb.



    Sprich, wenn ihr bei einer einigermaßen leistungsfähigen CPU, egal ob Ryzen oder i7 zu wenig FPS habt, es ist der fucking RAM und hier speziell die Latenzen.


    Hoffe das hilft jemandem weiter...


    Gruss!


    P.S.: Generell scheinen die Average FPS bei den Intel Corei höher zu sein, aber die Frametimes sehen vergleichsweise schlecht aus. (siehe Frameverlauf)


    Hier ein Beispiel:


  • Interessanter Ansatz und du sprichst mit deiner Behauptung gegen den Großteil der Arma Spieler die es auf gnadenlose Single Core Taktung schieben. Ich bin völlig unvoreingenommen und warte mal ab wie sich die Diskussion hier entwickelt. Wenns wirklich der RAM sein sollte, dann ändert das ja alles :)


    Gruß


    LiquidBlaze

  • Das sind echte Daten... Jeder der sich ein klein wenig mit RAM settings und dem BIOS Auskennt kann das nachstellen. Den YAAB gibts ja im Steam Workshop. (Bitte das Low Preset oder Standard Preset in den Video Settings vor dem Bench auswählen, sonst gibts keine Vergleichbarkeit.)


    Durchsatz bringt übrigens fast garnichts (sowohl auf dem Threadripper System eines Kollegen als auch auf einem X99 Brett eines Freundes gemessen).


    Das mit der gnadenlosen Core Taktung stimmt schon, nur halt auschlieslich dann, wenn der RAM schnell genug ist (sieht man ja schön oben).

  • Bewährt hat sich bei mir Prime95 (Blend Test). Noch besser ist aber der Aida64 (extreme) Stabilitätstest wenn man davon eine Lizenz besitzt (geht vieleicht auch in der Demo)


    Bei Aida64 hat man ein paar mehr Auswahlmöglichkeiten und Überwachungsfunktionen (Screenshot aus dem Netz).




    Bei Ryzen basierten Systemen kann ich sehr konkrete Tips geben... hab da mittlererweile viel Erfahrung. Einfach melden, ich helfe gern.

  • Arma hat zwei probleme. Fehlendes Multithreading (Hohe Single-core performance), Starkes setzen auf virtual functions.


    Beim verwenden von "virtual functions" wird nicht wie normal einfach eine Funktion aufgerufen wenn man das will.
    Sondern am anfang einer Klasse gibt es eine Tabelle von Funktionsadressen. Anstatt also die Funktion direkt auf zu rufen geht man nun in diese Tabelle, sucht sich die Funktionsadresse aus der Tabelle raus und ruft diese dann auf.
    Nun ist diese Tabelle oft (Stichwort CPU branch prediction) nicht im CPU cache und muss erstmal aus dem RAM geholt werden.
    Außerdem verhindert das "function inlining". Dabei werden Funktionen anstatt sie auf zu rufen direkt in die aufrufende funktion kopiert.
    Vergleichbar wäre das mit SQF wenn man anstatt call einfach die Funktion #include'd.
    Durch dieses viele hin und her springen landet man so auch oft an Stellen die nicht im CPU cache sind und es muss wieder auf den Ram gewartet werden.


    Vorallem bei SQF Scripts fällt das besonders auf. Denn die ganze SQF Engine benutzt virtual functions.


    Jetzt wisst ihr nicht nur das, sondern auch warum RAM Geschwindigkeit wichtig ist.

  • da war ja der DDR4-2400 CL15 eine Fehlinvestition für den 7700k :(


    Das lässt sich leider jetzt schon sicher bejahen... Du kannst dem aber sicherlich auch einfach mehr Spannung geben und ihn auf 2667-2800MHz hoch ziehen. Das geht bei den meisten. Da wirst du schon direkt sehen was sich tut.


    Was kommt denn bei Euch im YAAB auf Low Preset raus? Das wir mal ein paar weitere Anhaltspunkte haben.


    Ich liefer später auch mal noch einen Durchlauf @ Standard Preset nach und auch ein paar besser aufbereitete Details zum Ryzen RAM scaling wenn ich etwas mehr Zeit hab.

  • https://imgur.com/a/bGZnz


    Die Bilder sind etwas gelogen, die tatsächlichen Hardwaredaten sind: i7 7700k @4.8ghz, 3200er DRAM4 bei 19cl (ausser Tryit mit 16cl). Ka, obs hilft. Hab mal die Ramdaten hochgeladen als Bilder im Anhang.


    XMP macht bei mir net viel aus. Aber ich habe nicht das Gefühl, dass irgendwas hier grossartig stichhaltige Hinweise gibt. Hab aus Spaß diverse Optionen im Launcher ausprobiert, und die Varianz liegt zwischen 70-73fps. Das ist inklusive Ram-clock von 19 auf 16 runtersetzen (MSI Tryit).


    Macht der Speicher nen Unterschied? Bestimmt. Aber wie schon dein Bild zeigt, ist der grösste Unterschied immer noch die CPU und brutale single core Performance. Warte aber gerne auf mehr Infos bezüglich des Speichers. Evtl. lohnt es sich mal bessere Streifen zu holen.


    Ka, vielleicht teste ich auch falsch. Aber YAAB halte ich so erstmal nur für nen groben Test, da hier die Zufallsmomente massive Unterschiede machen. Mal krepieren alle direkt am Anfang, mal haste 5 statt 1 Typen im Bild rumlaufen. Alles nicht exakt genug um da über 1-3 fps Unterschiede zu sprechen.

  • @Slant , du besitzt also den 7700k? Hast du den Übertaktet oder wieso die 4,8GHz? Hab hier auch schon nen 7700k rumliegen und ich warte nurnoch darauf die letzten Teile zu bestellen für das neue System. Das Blöde ist halt wirklich, dass ich jetzt 2x8GB DDR4-2400 CL15 habe und dieser ja scheinbar, zumindest in ArmA einen großen Flaschenhals darstellt. :/

  • Also hier nochmal ganz frisch auf meinem Ryzen 1700. Alle Läufe bei identischem CPU Takt von 3.8GHz.


    RAM @ 2400MHz jeweils ein durchlauf @ Low und @ Standard mit Standard Settings



    Dann mit XMP Profil @ 3200MHz jeweils Low und Standard



    Und dann nochmal mit manuel getunten Subtimings ebenfalls @ 3200MHz




    Das sind also zwischen 2400MHz CL16 und 3200MHz CL14 mehr als 20% mehr Bilder/s^-1 im Durchschnitt. Unabhängig ob Low oder Standard Preset.

  • Normaler DDR4 RAM mit 2133 MHz ist für 4K vollkommend ausreichend. Mein Setup sieht nicht anders aus und mit 4K hab ich genau die selben Frames (Durchschnittlich 45-50) wie mit 1080p.

    "Sie haben Feinde? Super! Das heißt, dass Sie sich in Ihrem Leben für etwas eingesetzt haben." - Winston Churchill

  • Also das ne reine RAM Optimierung einen Leistungsschub verspricht kann ich zwar nicht ausschließen.
    Allerdings kann man mit "schlechteren" RAM durchaus mit Leistung kompensieren :)
    Ich hab den Benchmark auf Standard Settings laufen lassen, da alles low nur künstlich geschönte Zahlen liefert.
    Bei Interesse schiebe ich auch noch einen mit alles auf max nach.


  • Spannend wie ich diese Frameraten hier im Leben nicht erreiche, obwohl ich nen i7-8700K habe. Also entweder spielt die Grafikkarte eine weitaus größere Rolle als allgemein behauptet oder mein RAM ist nicht "schlechter" sondern jenseits von gut und böse.

    Ich will dir die Laune net verderben, aber wenn du bei 3.7ghz fährst, ist das der Hauptgrund dafür, dass du die FPS von anderen net erreichts. Deswegen habe ich weiter oben gepostet (vor Wochen mal), dass über RAM zu reden schön und gut ist, aber am Ende entscheidet einzig die Taktung der CPU. Und dabei ist es auch egal, wieviele Kerne man hat.


    Von daher, nope. Es ist nicht deine Graka. Es ist auch hier deine CPU.

  • Ich will dir die Laune net verderben, aber wenn du bei 3.7ghz fährst, ist das der Hauptgrund dafür, dass du die FPS von anderen net erreichts.

    Ach, keine Sorge. Um mir die Laune zu verderben ist schon weitaus mehr nötig als ein humpelndes Arma. Ist ja nicht so, dass ich keinen Kummer gewöhnt wäre. Und mit den durchschnittlichen FPS irgendwo zwischen 30 und 50 bei mir bin ich auch ganz zufrieden. Ich wollte einfach nur mal nachfragen wie man mit einer 100 MHz langsameren CPU deutlich so viel mehr Frames aus der Kiste quetscht.
    Hätte ich etwas genauer hingesehen, wär's mir wohl auch aufgefallen.

  • Was würdet ihr aktuell euren Eltern (hinsichtlich RAM) raten, die von Soft- und Hardware nur wenig Ahnung haben, künftig Arma 3 jedoch in 4K erleben wollen? Worauf sollen sie achten?

    Das kommt ja auch auf den Rest der Hardware und das Budget an. Bei 4K duerfte die GraKa natuerlich immer gewisser Flaschenhals sein aber ich wuerde aus oben ausfuehrlich dargelegten Gruenden zumindest nicht wahllos RAM kaufen. Der guenstigste DDR4 RAM (je GB) ist derzeit DDR4 2400MHz CL16 (145 EUR). Fuer 2 Euro Mehr gibts CL15 was damit bei einem Budget Sys klar die bessere Wahl waere. Beliebt ist auch der Crucial Ballistix Sport LT 2666MHz CL16-18-18. Durch die laengeren Latenzen sind die Vorteile allerdings marginal und die 15 Euro Aufpreis kaum wert. Demnach wuerde ich bei einem Budget Sys den F4-2400C15D-16GFXR nehmen. Wenn Das Budget gross genug ist wuerde ich bei einem Intel Sys F4-3000C14D-16GVR nehmen und bei einem AMD Sys (Ryzen) https://tinyurl.com/y89q2h72. (sind Samsung B basiert)

    Spannend wie ich diese Frameraten hier im Leben nicht erreiche, obwohl ich nen i7-8700K habe. Also entweder spielt die Grafikkarte eine weitaus größere Rolle als allgemein behauptet oder mein RAM ist nicht "schlechter" sondern jenseits von gut und böse.

    Was hast du denn @Standard Preset? Du solltest @ Stock schon etwa im Bereich von 52 FPS sein. Ein Ryzen @ 3.8GHz mit einer Radeon RX 470 liegt ebenda.