Seite 2 von 3

Re: [Hearts of Iron IV] Performance

Verfasst: 19. April 2017 17:54
von Surtshellir
Du hast oben genannten Tipp ausprobiert? Wurden da denn 4 oder 8 Kerne angezeigt? Wenn 8, dann ist auch kein HT deaktiviert. (Falls du überhaupt einen Quad-Core i7 hast, es gibt für Notebooks auch Dual-Core i7. Quad-Core i7 für Notebooks haben als Suffix HQ oder HK.)
Aber du kannst mal folgendes versuchen. Anstatt Kern 0 (den obersten) zu deaktivieren, deaktivieren die Kerne 1, 3, 5 und 7.
Oder im BIOS schauen ob du HyperThread (SMT) deaktivieren kannst. Manche Spiele laufen mit SMT schlechter als ohne, obwohl dies eigentlich dazu gedacht ist die Leistung zu steigern und sollte zumindest nicht die Leistung beeinträchtigen. Trotzdem es SMT schon einige Jahre gibt, gibts diese Performance-Probleme mit SMT auch bei manchen neueren Titeln. Ob HoI4 zu diesen Titeln gehört, weiß ich nicht. Hab kein HoI4 und konnte auf die Schnelle nichts Sinnvolles dazu finden.


Es sind bei mir 8 aufgelistet. Habe gerade HT deaktiviert und logischerweise sind jetzt nur noch 4 aufgelistet. Das Spiel simuliert jetzt zwar schneller, allerdings laggt das jetzt n bisschen. Aber ich denke, das ist wohl der bittere Nebengeschmack bei deaktiviertem HT, oder?

PS: Seitdem HT deaktiviert ist, wird mein Notebook nicht mal ansatzweise so heiß wie sonst.

Re: [Hearts of Iron IV] Performance

Verfasst: 19. April 2017 18:06
von Homerclon
Dann scheint HoI4 sowohl von HT zu profitieren als auch behindert zu werden, interessant.

Mit HT sollen die Recheneinheiten der CPU besser ausgelastet werden, indem immer dann wenn auf etwas gewartet werden muss, an einer anderen Aufgabe gearbeitet wird.
Ohne HT geht das Theoretisch auch, der Wechsel zur anderen Aufgabe dauert aber länger, so das es sich evtl. nicht lohnt überhaupt die Aufgabe zu wechseln.
Eine besser ausgelastete CPU bedeutet zwar höhere Leistung, aber natürlich auch höhere Leistungsaufnahme (kann also die Akkulaufzeit beeinflussen) und Abwärme (denn beim Warten wird weniger Wärme erzeugt --> kühlere CPU).

Re: [Hearts of Iron IV] Performance

Verfasst: 19. April 2017 20:34
von Surtshellir
Weiß man denn, wie viel das Spiel sich auch nimmt? Mag sein, dass bei meinem Sielstand gerade die Welt voller Truppen ist und wenn fast alle im Krieg sind, das Spiel so langsam läuft wie ein sabbender Bernhardiner, aber, trotz der extrem lahmen Simulation beträgt die CPU-Auslastung höchstens 25% und mehr als 1,9 - 2,1 GB RAM nutzt der auch nicht. Ich bin definitiv kein Experte bzgl. dessen, aber bei HoI3 konnte man mit dem 4GB Patch tatsächlich auch mehr RAM vergeben, da hat er sich durchschnittlich bis zu 3,8 GB RAM gekrallt.

Re: [Hearts of Iron IV] Performance

Verfasst: 21. Juni 2017 10:36
von nordstern
HoI4 ist ein 32bit-Spiel und damit ergibt sich die maximale Auslastung von alleine:

32bit bedeutet, er nutzt maximal 4GB Ram. Aber diese 4GB beziehen sich leider nicht auf das Spiel, sondern auf das was übrig bleibt wenn System, etc geladen sind. In meinem Fall sind das schlappe 1,1GB.

Desweiteren zieht die Engine von HoI4 (und allen anderen Paradoxtiteln) nur Leistung aus einer CPU (kein Multicore-Support). Daher wird bei dir auch eine CPU-Leistung von 25% angezeigt. Du hast einen i7 und betreibst diesen ohne HT, also hat er 4 Kerne. 100% Gesamtleistung/4Kerne -> wenn ein Kern zu 100% ausgelastet wird, hast du 25% CPU-Auslastung.

Der Grund dafür liegt im Alter der Engine. Die Engine existiert seit 1999. Seit dieser Zeit wurde sie immer wieder erweitert und überarbeitet und hat inzwischen Version 2.5 erreicht. Das Hauptproblem ist jedoch, das 32bit und 64bit komplett unterschiedlich rechnen und auch Multicore ist ein ganz anderer Rechenweg wie 32bit. Daher ist es schlichtweg unmöglich eine Engine nachtrählich auf 64bit und/oder Multicore-Support umzuschreiben. Daher hoffe ich inständig, das Paradox eine neue Engine entwickelt. Aktuelle Paradox-Titel haben klar aufgezeigt das die Engine am Ende ist (siehe Stellaris).

Das ist aber vollkommen normal. Mein i7-6700k knackt die 100% auch sehr schnell. Im Fall von Stellaris führt das bei allen Spielern zu deutlichen Problemen. Als im Endgame sind 2sec/Tag normal.

Re: [Hearts of Iron IV] Performance

Verfasst: 3. September 2017 19:09
von Homerclon
nordstern hat geschrieben:32bit bedeutet, er nutzt maximal 4GB Ram. Aber diese 4GB beziehen sich leider nicht auf das Spiel, sondern auf das was übrig bleibt wenn System, etc geladen sind. In meinem Fall sind das schlappe 1,1GB.

Das stimmt so nicht. 32Bit Anwendungen können unter einem 64Bit-Betriebssystem volle 4GB nutzen. Dafür muss aber ein LAA-Flag gesetzt sein. Bei Anwendungen ohne Kopierschutz kann man das auch selbst setzen. In Ausnahmefällen gehts auch trotz Kopierschutz. Aber wenn Steam als Kopierschutz genutzt wird, dann nicht.

Ohne LAA-Flag steht der 32Bit-Anwendung unter einem 64Bit-Betriebssystem nur 2GB RAM zur Verfügung.

Nur bei 32Bit-Betriebssysteme muss sich alles die 4GB-RAM teilen. Darauf laufen 64Bit-Anwendungen jedoch nicht.

Das Hauptproblem ist jedoch, das 32bit und 64bit komplett unterschiedlich rechnen und auch Multicore ist ein ganz anderer Rechenweg wie 32bit. Daher ist es schlichtweg unmöglich eine Engine nachtrählich auf 64bit und/oder Multicore-Support umzuschreiben. Daher hoffe ich inständig, das Paradox eine neue Engine entwickelt. Aktuelle Paradox-Titel haben klar aufgezeigt das die Engine am Ende ist (siehe Stellaris).


Mit wieviel Bit eine Anwendung, oder das Betriebssystem, arbeitet, hat nichts damit zu tun ob es von Multithreading profitiert. Aber es muss darauf ausgelegt sein, und ein nachträgliches integrieren ist auch nicht unmöglich. Jedoch sehr aufwendig. Per Patch kommt das garantiert nicht.

Re: [Hearts of Iron IV] Performance

Verfasst: 3. September 2017 22:04
von Hjalfnar
Weshalb ich bei Spielen mit vielen Einheiten, die nur 32bit sind, gerne LAA-Flags setze, entweder mit dem 4GB RAM Patch Tool, ursprünglich übrigens aus der HoI2-Community, oder dem Large Address Aware Tool. Nutze das bei HoI3, HoI4, Stellaris, EU4, CK2, CoH1 Blitzkrieg, Empire: Total War. Bei HoI3 und Empire merkt mans dann doch deutlich an den Ladezeiten, wenn man keine SSD hat, bei CoH1 Blitzkrieg an den Ladezeiten der gemoddeten Blitzkrieg-Maps.

Re: [Hearts of Iron IV] Performance

Verfasst: 3. September 2017 23:24
von nordstern
Das war falsch geschrieben. Ich weis das bit und Multicore nichts zutun haben.

Weis jemand wie ich bei Stellaris ein LAA setze? Welcher 4GB Patch ist das? Ich habe zwar einen, aber der hat irgendwie nichts bewirkt...

Re: [Hearts of Iron IV] Performance

Verfasst: 4. September 2017 00:06
von Hjalfnar
Wenn der 4GB RAM Patcher nicht funzt, benutze ich das hier: https://www.techpowerup.com/forums/thre ... re.112556/

Einer von beiden geht eigentlich immer.

Re: [Hearts of Iron IV] Performance

Verfasst: 4. September 2017 11:11
von Chromos
nordstern hat geschrieben:..
Desweiteren zieht die Engine von HoI4 (und allen anderen Paradoxtiteln) nur Leistung aus einer CPU (kein Multicore-Support). Daher wird bei dir auch eine CPU-Leistung von 25% angezeigt. Du hast einen i7 und betreibst diesen ohne HT, also hat er 4 Kerne. 100% Gesamtleistung/4Kerne -> wenn ein Kern zu 100% ausgelastet wird, hast du 25% CPU-Auslastung.

Der Grund dafür liegt im Alter der Engine. Die Engine existiert seit 1999. Seit dieser Zeit wurde sie immer wieder erweitert und überarbeitet und hat inzwischen Version 2.5 erreicht. Das Hauptproblem ist jedoch, das 32bit und 64bit komplett unterschiedlich rechnen und auch Multicore ist ein ganz anderer Rechenweg wie 32bit. Daher ist es schlichtweg unmöglich eine Engine nachtrählich auf 64bit und/oder Multicore-Support umzuschreiben. Daher hoffe ich inständig, das Paradox eine neue Engine entwickelt. Aktuelle Paradox-Titel haben klar aufgezeigt das die Engine am Ende ist (siehe Stellaris).

Die Clausewitz Engine gibt es erst seit EU3. Oder wenn man so will, dann war Diplomacy das erste Clausewitz-Testspiel. Diese wird in modernisierter Version auch immer wieder für neue Spiele benutzt.
Die Engine davor war die Europa-Engine(HoI1-2, EU 1-2, CK...).
Und mit HoI3-TFH kam der Multicore support der dann auch in den anderen Spielen nachträglich eingebaut wurde.
Bei PDX-Spielen ist bislang nur ein äußerst leichte Mehrkern-Unterstützung aktiv. Angeblich weil sich der Code von deren Spielen nicht gut parallelisieren lässt.
Anscheinend selbst wenn sie "alles neu schreiben" wie bei Stellaris oder HoI4. Oder sie wissen/wollen einfach nicht wie man das gescheit bewerkstelligen könnte.
Für mich sieht es eher so aus, als wenn sie nicht von Ihrer alten Logik abrücken wollen und deshalb noch immer mit den alten Problemen kämpfen.
Aber, die Programme laufen definitiv mit Mehrkern-Unterstützung.

Re: [Hearts of Iron IV] Performance

Verfasst: 4. September 2017 11:52
von nordstern
Habe ich auch gerade gelesen.

Hm.. ich finde meine Quelle mit 1997 nicht mehr. Dabei ist das komisch... ich dachte das wäre die gewesen wo jetzt 2007 und EUIII steht. Naja...

Wg Multicore: Ich merke halt davon garnichts. Stellaris Midgame... Prozessorauslastungen. Wenn ich mir da die einzelnen Prozessoren anschaue stelle ich fest, das Stellaris nur auf lediglich einem läuft. Keine Ahnung wo da die leichte Mehrkernunterstützung ist.

Man muss hier aber auch klar sagen, das 2007 Mehrkern ne kniffliche Sache war. Heute ist das wesentlich anders, weil die Treiber der CPUs das bereits selbst machen und der Datenaustausch zwischen den CPUs so schnell wurde, das da keine nennenswerten Zeitverzögerungen mehr auftreten.

TotalWar hat ja auch erst mit Rome2 richtig auf Multicore umgestiegen. Rome2 zu Release konnte kein Multicore, was bei vielen Käufern mit Highend-PCs sehr viel Frust erzeugte. Da alte PCs mit weniger Kernen aber höheren Taktraten/Kern deutlich besser liefen als neue Highend-CPUs. Das wurde aber wenige Wochen nach Release geändert. Allerdings weis ich nicht wie die Clausewitzengine ausgelegt ist... ob sowas da möglich ist oder ob diese die Multicore-Unterstützung noch selbst durchführt statt auf die CPU-Software zu vertrauen. Theoretisch müsste sie es können, da die TotalWar-Engine auch aus dem Jahr 2007 kommt (Restrelease war 2009, aber die Entwicklung begann ja schon früher).


Tatsache ist das Paradox ein Problem hat. Ihre eigenen Spiele entwickeln immer größeren Prozessorhunger, sie können aber durch die Programmstruktur und/oder Engine diesen Hunger nicht stillen. Pradox hat da ein großes Problem und das müssen sie lösen... egal wie.

Für mich ist ein Spiel, das ich nicht mal mehr im Midgame flüssig spielen kann mit egal was für einem PC schlichtweg nicht kaufinteressant.

Re: [Hearts of Iron IV] Performance

Verfasst: 4. September 2017 17:44
von Homerclon
nordstern hat geschrieben:Wg Multicore: Ich merke halt davon garnichts. Stellaris Midgame... Prozessorauslastungen. Wenn ich mir da die einzelnen Prozessoren anschaue stelle ich fest, das Stellaris nur auf lediglich einem läuft. Keine Ahnung wo da die leichte Mehrkernunterstützung ist.

Probier es aus. Da sicherlich vom Spiel abgefragt wird wie viele Kerne zur Verfügung stehen, musst du im BIOS die einzelnen Kerne deaktivieren. Die meisten Boards unterstützen das. Evtl. musst du noch in Configurationsdateien schauen das dort keine Kernzahl hinterlegt ist.

Man muss hier aber auch klar sagen, das 2007 Mehrkern ne kniffliche Sache war. Heute ist das wesentlich anders, weil die Treiber der CPUs das bereits selbst machen und der Datenaustausch zwischen den CPUs so schnell wurde, das da keine nennenswerten Zeitverzögerungen mehr auftreten.

CPU-Treiber helfen da nicht im geringsten, wenn die Anwendung nicht darauf ausgelegt ist. Zudem ist auch noch entscheidend welche CPU genau es ist. Für AMDs Ryzen brachte CA einen Patch um die Leistung in TWW zu erhöhen. CA musste der Engine beibringen das bestimmte AMD CPUs nun auch SMT beherrschen, und dementsprechend die Threads auf die Kerne verteilen. Weitere besonderheiten könnten auch noch berücksichtigt werden.

Die Umsetzung war auch nicht wirklich kniffliger, es fehlte schlicht an Erfahrung. Wenn man sich nie Gedanken darum machen musste, weil eh nur ein Kern zur Verfügung stand, ist es erst mal eine Herausforderung so zu Programmieren das die eigene Anwendung direkt davon profitieren kann.
Nun hat sich die Herausforderung dahingehend verschoben, das man nun überlegen muss wie man es bewerkstelligt das die Anwendung nennenswert von mehr als 2-3 Kernen profitiert.
Bisher gibts noch immer wenige Engines die nennenswert von mehr als 4 Kerne profitieren. Den größten zugewinn sieht man noch beim wechsel von 2 auf 3 oder 4 Kerne, darüber hinaus ist der zugewinn meist vernachlässigbar.

TotalWar hat ja auch erst mit Rome2 richtig auf Multicore umgestiegen. Rome2 zu Release konnte kein Multicore, was bei vielen Käufern mit Highend-PCs sehr viel Frust erzeugte. Da alte PCs mit weniger Kernen aber höheren Taktraten/Kern deutlich besser liefen als neue Highend-CPUs. Das wurde aber wenige Wochen nach Release geändert. Allerdings weis ich nicht wie die Clausewitzengine ausgelegt ist... ob sowas da möglich ist oder ob diese die Multicore-Unterstützung noch selbst durchführt statt auf die CPU-Software zu vertrauen. Theoretisch müsste sie es können, da die TotalWar-Engine auch aus dem Jahr 2007 kommt (Restrelease war 2009, aber die Entwicklung begann ja schon früher).

Bei Rome2 wird CA es nur optimiert bzw. aktiviert haben, per Patch nachrüsten ist nicht so wirklich möglich, da es größere Veränderungen bedarf.

Tatsache ist das Paradox ein Problem hat. Ihre eigenen Spiele entwickeln immer größeren Prozessorhunger, sie können aber durch die Programmstruktur und/oder Engine diesen Hunger nicht stillen. Pradox hat da ein großes Problem und das müssen sie lösen... egal wie.

Das stimmt, sie müssen ihre Engine auf stärkeres Multithreading umstellen, das muss jeder Entwickler.
Dank AMD ist nun die Zeit angebrochen das immer mehr Leute 6-8 Kerne + SMT in ihren Rechnern haben werden. Auch Intel wird im Mainstream-Markt nachziehen (i3 als Quad ohne SMT, i5 als Hexa ohne SMT, i7 als Hexa mit SMT).
Die IPC bzw. der Takt wird dagegen jedoch kaum mehr so stark ansteigen, das man es sich erlauben kann die Hauptlast auf 1-2 Kerne zu legen, bei gleichzeitiger hoher Wichtigkeit der CPU-Leistung.

Mit DX12 und Vulkan stehen den Entwickler jedoch 2 APIs zur Verfügung um die CPU-Last etwas zu reduzieren bzw. effizienter zu nutzen.

Re: [Hearts of Iron IV] Performance

Verfasst: 4. September 2017 23:06
von nordstern
Genau das ist eben das Problem. Das die CPU-Leistung durch mehr Kerne und nicht höhere Taktraten der Kerne erkauft wird.

Wie das bei Rome2 lief weis ich nicht. Wieso war das bei Release deaktiviert? Ich tippe halt es war noch nicht fertig zu Release.

Soweit ich weis, hast du durchaus recht. Früher war es aber notwendig dem Programm genau zu sagen wann er welche Rechnungen auf welchen Kern legen muss. Das ist heute nicht mehr so, weil die Software der Hardware (ka wie man das nennt) selbst erledigt. Man muss quasi nur noch Schreiben wann welcher Prozess wo gebraucht wird. Die CPU stückelt das selbst auseinander und zusammen. Zumindest ist das mein Infostand stark vereinfacht ausgedrückt.

Müsste das nicht im Gerätemanager sichtbar sein wieviele Kerne Stellaris nutzt?

Re: [Hearts of Iron IV] Performance

Verfasst: 5. September 2017 14:04
von Homerclon
nordstern hat geschrieben:Wie das bei Rome2 lief weis ich nicht. Wieso war das bei Release deaktiviert? Ich tippe halt es war noch nicht fertig zu Release.

Das es vermutlich daran lag, das man nicht fertig war ist durchaus möglich, vlt auch ein (hartnäckiger) Bug, aber die Hauptarbeit war bereits erledigt.

Soweit ich weis, hast du durchaus recht. Früher war es aber notwendig dem Programm genau zu sagen wann er welche Rechnungen auf welchen Kern legen muss. Das ist heute nicht mehr so, weil die Software der Hardware (ka wie man das nennt) selbst erledigt. Man muss quasi nur noch Schreiben wann welcher Prozess wo gebraucht wird. Die CPU stückelt das selbst auseinander und zusammen. Zumindest ist das mein Infostand stark vereinfacht ausgedrückt.

Das Betriebssystem macht das, anfangs noch eher schlecht als recht. Aber auch heute noch ist es effektiver, wenn die Anwendung da mithilft. Gerade wenn die Anwendung nicht von SMT profitiert, oder gar dadurch ausgebremst wird.

Wie schon genannt, wurde das bei Warhammer nach dem Ryzen-Release von CA angepasst.

Müsste das nicht im Gerätemanager sichtbar sein wieviele Kerne Stellaris nutzt?

Aber nur relativ ungenau. Da kann zwar auch stehen: 'arbeitet mit 25 Threads'. Nur bedeutet das leider nicht, das es auch nennenswerte Mehrleistung bringt eine CPU mit 25 Kerne zu nutzen. Evtl. Ist der Mehrnutzen bereits mit einem 4-Kerner ausgereizt, weil die Hauptlast auf 2 Kerne/Threads liegt, und die beiden anderen Kerne ausreichen um die übrigen 23 Threads + Hintergrundlast abzuarbeiten.

Wenn es so einfach wäre, würden die Magazine es nicht testen, sondern einfach im Taskmanager nachsehen.

Re: [Hearts of Iron IV] Performance

Verfasst: 5. September 2017 14:28
von Chromos
Taskmanager starten und dann von dort den Ressourcenmanager.
Dann kann man alle Kerne einzeln sehen.
Bei meinen 8 Kernen ist das Gesamtsystem von 29-41 % ausgelastet bei HoI3-TFH.
Wobei ein Kern zu 100% arbeitet 3-4 bei 30-50% und der Rest bei max 20%.
Dabei sind für HoI3 dann 23 Threads aktiv.
Stellaris habe ich nicht, aber man ja auch einmal testen wie sich das Spiel verhält wenn man die benutzten Kerne beschränkt.
https://www.administrator.de/frage/anwe ... 18274.html
Ganz unten in dem Link hat Snowman und Bitboy eine genaue Beschreibung wie das geht.

Re: [Hearts of Iron IV] Performance

Verfasst: 5. September 2017 23:12
von Homerclon
Wie ich schon schrieb, ist das im Task-Manager relativ ungenau.

Und viele Spiele lesen beim ersten Spielstart aus wie viele Kerne zur verfügung stehen. Ändert man die Anzahl nachträglich (auch wenn man die Nutzung auf weniger Kerne beschränkt), wird sehr wahrscheinlich die Leistung darunter leiden.