Intergalaktischer Kongress
Raumhafen 42 / Freihafen 42
Spaceport forty two
Das Restaurant am Ende des Universums
10 Vorne
Mos Eisley Cantina
Spelunke zum wandernden Kometen
Zu den erleuchteten Zeiten
Stellar's Stadl
Star's End
Technologieoffenheit bedeutet Entscheidungsschwäche
Glaubhafte Politik setzt voraus, dass man erstmal vor der eigenen Haustür kehrt!
Kluge Köpfe sprechen über Ideen, mittelmäßige über Vorgänge und schwache über andere Leute.
Das stimmt so nicht. auch Singlethread sind die größten Consumer CPUs ( also die bei AMD und Intel aktuell mit 8 Kernen ) die größten immer die schnellsten da es genau deshalb ja den Turbo gibt. Erst bei den Workstation und "Enthusiast" CPUs ( bei AMD Threadripper bei Intel gibts leider keinen eigenen Namen dafür, bisher war das i9 aufwärts aber jetzt gibts mit Coffe Lake ja auch einen Consumer i9 ) da dort die Kerne anderst miteinander vrbunden sind ( Intel früher Doppelter und glaub am ende sogar dreifacher Ringbus inzwischen ein Mesh und bei AMD fällt mir gerade nicht der Name ein, einmal die Verbindung der zwei 4 Kern CCX auf der CPU und dann bei Threadripper und natürlich Epic mehrere CPU miteinander)
Technologieoffenheit bedeutet Entscheidungsschwäche
Glaubhafte Politik setzt voraus, dass man erstmal vor der eigenen Haustür kehrt!
Kluge Köpfe sprechen über Ideen, mittelmäßige über Vorgänge und schwache über andere Leute.
Ich meine die Caches und nicht die 8GB or whatever Memory Sticks. Wenn dein Programm ständig in einer nicht vorhersehbaren Art und Weise auf unterschiedliche Memoryadressen zugreift, dann nuckelt die Performance ab, denn du musst jedes Mal neu die Daten aus dem RAM in die CPU laden. Und dieses Laden dauert, je nachdem welche Rechnung du machen möchtest, schonmal zwei Größenordnungen länger als die eigentliche Rechnung, währenddessen die CPU halt wartet. Ein wichtiger Punkt hier ist die Vorhersagbarkeit, in der man auf die Daten zugreifen möchte. Kurz gesagt: arbeitet man die Daten am Stück durch, erkennt das die Hardware und lädt die gleich benötigten Daten und Anweisungen schonmal in den L1 Cache, während das Programm sie noch gar nicht braucht.
Objekt-orientiertes Programmieren führt oftmals zu solchen Problemen. Anstatt die Daten als ein Block hintereinander zu allokieren, hat man ein Array aus Pointern zu irgendwelchen Memoryadressen, die mühsam einzeln geladen werden müssen . Ein Cachemiss alleine ist kein großes Ding, aber in großer Menge innerhalb einer wichtigen Schlefe zur Berechnung ist es ein death by a thousands cuts. In den meisten Programmen spielt das auch keine große Bedeutung, während OOP halt auch einige Vorteile mit sich bringt.
Falls du mehr dazu wissen möchtest, kann ich dir diese beiden Videos sehr empfehlen
Scott Meyers: Cpu Caches and Why You Care https://youtu.be/WDIkqP4JbkE
Mike Acton "Data-Oriented Design and C++" https://youtu.be/rX0ItVEVjHc
Ob Stellaris am Ende solche Probleme wirklich hat, kann man nicht sagen, ohne den Sourcecode zu sehen. Ich halte es jedenfalls für wahrscheinlich.
Warum sollte Stellaris mehr als 1.5GB RAM benötigen? Für was? Das ganze Spiel besteht doch nur aus ner schwarzen Wand und ein paar Murmeln mit Texturen drauf. Die verfügbare Menge an RAM hat überhaupt gar nichts mit der Geschwindigkeit zu tun, sofern alle benötigten Daten in den RAM geladen werden können. Das Problem ist eher, wie die Daten im RAM liegen. Liegen die (x,y)-Koordinaten und (v_x, v_y)-Geschwindigkeiten der Schiffe schön gepackt zusammen, sodass man alle Berechnungen in einem Rutsch erledigen kann? Oder sieht es aus wie bei Hempels unterm Sofa?Und da liegen die performanceprobleme... wenn maximal 1,5GB Ram genutzt werden, egal wieviel frei ist, dann ist das kein 64bit..
Naja, wird langsam ein wenig Offtopic. Aber zum Spielen ist es mir gerade zu verbuggt
Geändert von Korona (08. Januar 2019 um 22:24 Uhr)
Bei meiner jüngsten Partie hatte ich eine kleine Galaxis mit 400 Sternen und wenigen Gegnern. Mein Rechner ist bei der Leistung ordentlich gerüstet. Die Partie lief so lange gut, bis ich letztlich den Hyperraumsprung (?) erforschte, eine der gefährlichen Technologien, bei der man anschließend frei innerhalb eines gewissen Radius reisen kann. Ab da, so mein Eindruck, ging der Rechner in die Knie. Das Weiterspielen machte keinen Spaß mehr. Eine einzige Partie ist nun wahrlich nicht empirisch, aber achtet mal bitte darauf, wie es sich bei euch darstellt.
Übersicht meiner bisherigen und laufenden Storys hier im Forum
Und durch seine Klugheit wird ihm der Betrug geraten, und er wird sich in seinem Herzen erheben, und mitten im Frieden wird er viele verderben und wird sich auflehnen wider den Fürsten allen Fürsten.
Das ist die Frage die wir leider nicht wissen. Ich weis es nicht, das weis keiner der den Code nicht kennt. Aber umgekehrt könnte man auch Fragen: Wieso sollte Stellaris mehr als 1,2 Kerne zeitgleich nutzen?
Tatsache ist, es läuft langsam... neuerdings schon zu spielbeginn und das es keinen Unterschied macht ob HighendPC oder GurkenPC. Es ist eher das Gegenteil der Fall. Und das einzige was früher "besser" war als heute ist, das die Taktraten der CPUs höher waren. Mein inzwischen 2,5 Jahre alter i7-6700 hat einen Singletakt von 3,4GHz und 4 GHz Turbo (wobei ich garnicht weis wie man den aktivieren kann oder ob der bei bedarf aktiviert wird und ob das von Win, dem Treiber oder dem Spiel aktiviert werden muss).
Das Problem muss an der CPU oder dem Ram liegen. Ich Tippe ganz klar auf CPU. Und das löst sich leider nicht ohne weiteres. Da muss Paradox viel Arbeit in die Engine stecken, ne neue Programmieren oder endlich mal effizient programmieren statt schnell hingerotzt.
Welche Single COre CPU hatte früher schon einen höheren Takt als 3.4-4.0? Zudem ist Stellaris noch gar nicht so alt das man im Fall von CPU Taktraten wirklich von einem "Früher" sprechen kann.
Frieden durch Macht!
Bruderschaft von Nod
Es liegt weder an der CPU noch am RAM...
Conflict on Chiron - Sid Meier's Alpha Centauri vs. Call to Power!
Neu Version Conflict on Chiron v3.4 BETA - 16.01.16
Patch1 - 07.04.16
Die deutschen Sounds und Wunderfilme sind bereits in der MainFile integriert!
Ihr könnt sofort loslegen.
Über Feedback würde ich mich freuen...
Eine sehr interessante Analyse ist hier
https://forum.paradoxplaza.com/forum...lysis.1138327/
Das Problem ist also schon ein wenig komplexer und es lohnt sich durchaus, das mal durchzulesen.
"...that which holds the image of an angel becomes itself an angel..."
Das Bemühen um mehr soziale Gleichheit hat ebenfalls seine Schattenseite:
So erzeugen manche Verfechter von Gleichheit und Akzeptanz selbst Ungleichheit und Inakzeptanz – weil auch sie nur jene akzeptieren, die ihren eigenen Werten entsprechen. Alle anderen werden beschuldigt, beschämt, moralisch verurteilt oder sonstwie verächtlich gemacht. Das begünstigt Kulturkämpfe und eine immer stärkere Polarisierung der Gesellschaft.
ALso wenn ich mir den Link so durchlese liegt es an der CPU, bzw. daran wie Paradox/die Engine Multithreating programmiert hat. Und das Problem ist scheinbar so gravierend, weil Paradox niemanden verfügbar hat der sich mit MT richtig auskennt. Daher empfiehlt der TE, das Paradox auf Leihbasis, als Berater oder als Festanstellung sich jemanden besorgt das das umschreiben kann. Und er sagt auch, wenn man das einmal richtig gemacht hat, hat man für sehr lange zeit ruhe damit.
Das Problem scheint also nicht zu sein, dass die Engine nicht MT nutzen kann. Sondern vielmehr, dass die Engine die Prozesse nicht richtig auf die CPUs verteilen kann. Der Tester hat die Auslastzung der Threads gemessen, nicht die der Kerne. Ich habe mir die der Kerne angeschaut und festgestellt, das Stellaris NIE mehr als 2 Kerne nutzt und der 2.Kern maximal zu 20% ausgelastet wird. Aber genau dass ist, wie ich geschrieben hatte, ein Problem das ALLE Engines/Entwicklerstudios mit Aufkommen von MT hatten. Und alle haben dieses gelöst und haben heutzutage ein teilweise sehr gutes MT. Ausgenommen Paradox. Die Umsetzung errinnert mich an die ersten Laienversuche als die Technologie rauskam. Also was da so die ersten 2 Jahre abgeliefert wurde.
Wenn ich mich nun daran errinner, das Paradox gesagt hat, das aufgrund des Codes/der Spielweise des Spiels kein besseres MT möglich ist, zeigt das eigentlich ziemlich klar, das bei Paradox niemand arbeitet der das wirklich kann. Denn sowas macht man nicht mal nebenher. Dafür braucht men nen Experten, das ist nämlich sehr schwer.
Ich hoffe das Paradox sich das zu herzen nimmt. Es kann doch finanziell nicht so schlimm sein EINEN Experten befristet auf Erfüllung des Auftrags anzustellen mit Auswirkungen auf die Spiele und das für eine sehr lange Zeit.
Sehr gute Zusammenfassung @nordstern. So hatte ich es auch verstanden und ich hoffe, dass sie sich da wirklich mal (externen) Support holen. Die Spiele werden von den Anforderungen her ja nicht einfacher.
Wenn ich mir die Grafik und die Map von Imperator:Rome anschaue, dann frage ich mich auch, ob das alles im Lategame noch klappen wird, wenn an der Engine nichts geändert worden ist.