Tipp bei Performance-Problemen

Willkommen in der Transport Fever Community

Welcome to the fan community of Transport Fever and Train Fever, the economic simulators of Urban Games. The community is free for you to share and inform yourself about the game. We cultivate a friendly and objective interaction with each other and our team will be happy to answer any questions you may have.

 

Registration and use is of course free for you.

 

We wish you a lot of fun and hope for active participation.

The Team of the Transport-Fever Community

  • Moin!

    Es gibt zwar viele Lösungsansätze die Performance eines Spiels zu verbessern oder zu erhöhen, viele davon sind aber sehr mühselig. Ich möchte Euch mal einen Ansatz vorstellen der vor allem geeignet ist für Systeme mit mehr Cores und Threads als ein Spiel wirklich braucht. Bei TPF 2 kann man davon ausgehen dass es zur Zeit 4 Kerne effektiv nutzen kann, durch weitere Patches und Öptimierungen könntes es mal auch 6 werden. Das bedeutet also dass auf einem 8-Kerne System zur Zeit definitiv 4 Kerne nicht vom SPiel genutzt werden, und das machen wir uns hier mal zunutze.


    Jeder hat bestimmt schon im Task Manager beobachtet wie das Betriebssystem relativ willkürlich die Threads eines Spiels hin und herschiebt, was nicht immer optimal ist. Das gleiche passiert mit Hintergrundgediensten des Betriebssystems, ebenso mit Zusatzdiensten wie Virenscannern etc. Sinnvoll wäre es also alles von einerander zu trennen und auf unterschiedlichen Cores ablaufen zu lassen, damit sich nichts in die Quere kommt, gerade bei Spielen die CPU-lastig sind. Ich nutze dazu beispielsweise das Tool "Process Lasso" in der Vollversion und trenne eben allen "Hintergrundkram" vom Spiel. Zunächstmal aber starte ich den Rechner neu und öffne Dinge die ich eben auch sonst manchmal im Hintergrund offen habe, z.B. Outlook. Danach markiere ich alle aktiven Prozesse und weise ihnen einfach mal die ersten 2 Cores (bzw. 4 Threads) der CPU zu und speichere das ab. Danach starte ich das Spiel (z.B. Transport Fever) und weise die restlichen Cores/Threads zu. Im Falle von TPF sogar nur jeden zweiten, damit ich "echte" Cores habe. Hiermit erreiche ich zusätzlich den gleichen Effekt den "SMT"/"Hyperthreading" aus hätte.


    Im groben ist es das auch gewesen, man kann aber natürlich noch feintunen und Besonderheiten der verwendeten CPU-Architektur zu berücksichtigen, wie zum Beispiel dass eine Ryzen CPU aus zwei Komplexen besteht (CCX) und es gerade bei der ersten Generation zusätzlich Sinn macht das Spiel innerhalb eines CCX zu halten (also dann für TPF eben Cores 5-8...). Aber hier wär wirklich Ausprobieren die Devise. Ganz wichtig: nicht stur auf die fps starren! In den meisten Fällen wird die durchschnittliche oder maximale fps-Zahl nichts teigen, die Spitzen nach unten aber verbessern oder die Microruckler. Also eher eine Runde spielen und beobachten wie sich das Spiel anfühlt als nur die Frameraten zu beobachten.


    Möglicherweise bringt das ganze nichts für ganz frische, neu installierte Systeme. Aber im Laufe der Zeit sammelt sich ja einiges an, sinnvolles und unnötiges, und man möchte ja echt nicht jedes mal per Hand irgendwelche Tasks abschießen. Die vielen Cores haben wir doch auch um uns weniger mit sowas beschäftigen zu müssen. Und vielleicht kriegt es MS eines Tages hin dass der Game-Modus genau das auch tut.


    Übrigens auch bei Systemen mit nur 4 Cores könnte es was bringen: da würde ich es ausprobieren die ganzen Tasks einfach auf den ersten Kern zu bündeln. Mit mehr Kernen hat man natürlich mehr Luft. Diese Methode wende ich seit bestimmt über einem Jahr an z.B. bei X-Plane und GTA 5. Auf einem Ryzen 7 1700X 8-Kerner kriege ich keine höheren Frameraten, aber jegliche Microruckler sind weg.


    Edit 09.03.2020:

    Mir scheint mit dem letzten Patch hat sich die Nutzung von mehreren Kernen deutlich verbessert. Jetzt erziele ich die besten Ergebnisse mit 7 echten Kernen bzw 14 Threads für TPF und sehe dass alle fleißig genutzt werden. Ein Deaktivieren von SMT ist zumindest für Systeme bis zu 8 Kernen nicht zu empfehlen, bei mehr Cores kann dies natürlich anders aussehen;-)


    System:
    MB: Asus Prime X370 Pro, CPU: AMD Ryzen R7-1700X @3,8 GHz, RAM: 32 GB @ DDR4-2666, Grafik: PNY Geforce GTX 1080 XLR8-OC 8 GB, Sound: Asus Xonar Essence STX-II, SSD 1: Samsung 960 Evo 500 GB M.2, SSD 2: Crucial CT512MX100 512 GB SATA, OS: Windows 10 Pro 64 Bit

    Edited once, last by wurstbrot: Änderungen durch letzten Patch ().

  • Mikroruckler können entstehen wenn TPF gerade einen Kern auslastet, das Betriebssystem aber meint auf dem gleichen Kern was anderes ausführen zu müssen. Sie können aber auch entstehen wenn die Bildrate einfach zu sehr schwankt. Der erste Fall dürfte sich in eher unregelmässigen, aber heftigen Rucklern äußern, der zweite in regelmäßigen: zum Beispiel wenn die Fahrzeuge wie im Takt zuckeln Wobei ich glaube bei nur zwei Kernen kommt eben viel zusammen. Und wenn dann die Grafikkarte zusätzlich limitiert, dann wirds sehr eng.


    System:
    MB: Asus Prime X370 Pro, CPU: AMD Ryzen R7-1700X @3,8 GHz, RAM: 32 GB @ DDR4-2666, Grafik: PNY Geforce GTX 1080 XLR8-OC 8 GB, Sound: Asus Xonar Essence STX-II, SSD 1: Samsung 960 Evo 500 GB M.2, SSD 2: Crucial CT512MX100 512 GB SATA, OS: Windows 10 Pro 64 Bit

  • Ich hätte jetzt vermutet, dass das Betriebssystem die Kerne so intelligent verwaltet, dass die Programme ideal laufen. Klappt bei vielen anderen ja auch. Alternativ könnte man auch die Priorität des Prozesses erhöhen, aber keine Ahnung ob das was bringt.


    Ich vermute eher, dass die Mikroruckler von TPF einfach auftreten, wenn gerade sehr viel berechnet werden muss und daher die FPS nicht gehalten werden können.

    Man muss die Dinge so einfach wie möglich machen. Aber nicht einfacher. - Albert Einstein

  • Für 99% der Fälle macht es das Betriebssystem nicht mal so schlecht, aber trotzdem belastet es die Kerne die anderweitig genutzt werden mit gerade nicht benötigtem Kram. Und wenn da gerade viel Last anliegt wird es eben eng. Meine Hoffnung war von Update zu Update immer dass genau dies der Game Mode lösen würde, tut er aber bis heute nicht. Während ich spiele interessiert es mich jetzt nicht so arg ob zum Beispiel ein Virenscan nun im Hintergrund etwas länger dauert oder nicht, oder ein Backup Task. Ich will dass das Spiel alles kriegt was es braucht. Gleiches könnte man (annäherend) erreichen wenn man per Hand im Taskmanaher den Prozessen die kerne/Threads zuweisen würde und eben Sachen wie Virenscanner etc abschalten. Aber da kannst Du erstens nichts abspeichern und zweitens mach das mal für 60-100 Tasks... Übrigens: Google Chrome ist nicht nur ein Speicherfresser sondern ein ziemlicharger Störer wenn es auf dem gleichen Kern ist wie Dein Spiel. Und beim einfachen schließen bleibt's trotzdem im Hintergrund. Kümmert mich nun aber nicht mehr, jetzt habe ich es immer auf und es kann mir egal sein. Ein Jammer dass Windows dies nicht von Haus aus tut.


    Wenn TPF viel zu rechnen hat und die CPU nicht nachkommt, dann kannst Du wenig machen. Diesen Fall wirst Du beim Dual Core wohl öfter haben, deswegen bin ich mir nicht sicher ob der Tipp hier Dir wirklich was bringt. Auch bei riesigen Welten mit vielen Einwohnern und Fahrzeugen wird es irgendwann eng auch auf schnelleren System. Es wird aber länger gut gehen bis die Grenze erreicht ist.


    System:
    MB: Asus Prime X370 Pro, CPU: AMD Ryzen R7-1700X @3,8 GHz, RAM: 32 GB @ DDR4-2666, Grafik: PNY Geforce GTX 1080 XLR8-OC 8 GB, Sound: Asus Xonar Essence STX-II, SSD 1: Samsung 960 Evo 500 GB M.2, SSD 2: Crucial CT512MX100 512 GB SATA, OS: Windows 10 Pro 64 Bit