Jump to content

Recommended Posts

Posted

Hi ihr lieben!

Ich habe da eine brennende Frage und ich hoffe das kann mir einer Verständlich beantworten. (So das Ichs auch versehe :3 )

Auf Wievielen CPU Kernen läuft Minecraft bzw. kann laufen?

Manche sagen es geht nur auf einen, andere wiedersprechen mir dann und Meinen das Minecraft Multi Core unterstützt ...

LG Stern

Posted (edited)

1.

Genau 1.

Das liegt daran das die Renderengine sowie sämtliche Berechnungen der Umwelt in einem einzigen Thread ablaufen.

Ja, Minecraft hat mehrere Threads, für Login zB., ABER zum Spielen verwendet es einen einzigen Thread.

Mojang ist gerade dabei - so wie ich das verstanden habe - die Welten multithreaded zu machen, nützlich bei Multiverse, aber das Vanilla Minecraft läuft deswegen auch "nur" auf einem Thread.

BTW: Dein Profilbild ist echt putzig :D

Edited by boomer41
Posted

Es hängt extrem vom Betriebssystem ab, ob sich das überhaupt lohnt; Windows zum Beispiel ist notorisch dafür, immer noch kein richtiges Multicore Handling draufzuhaben, und das seit jetzt gut 20 Jahren. Linux kann es hingegen vorzüglich. Dann musst du noch eines wissen: Java läuft Standardmäßig nur auf einem Kern, aber du kannst es mit einem Flag zwingen, mehrere Kerne zu nutzen.

Selbst wenn du das tust, ist nicht wirklich eine Geschwindigkeitsverbesserung festzustellen, außerdem hab ich gelesen, dass die VM dann instabil wird... Liegt also ganz an dir, ob du das willst.

PS: die Flag heißtXX:ParallelGCThreads=7

Posted (edited)

PS: die Flag heißtXX:ParallelGCThreads=7

ParallelGCThreads heißt soviel wie ParallelGarbageCollectorThreads. GarbaceCollection ist zu Deutsch den unbenutzten Müll löschen, damit RAM frei wird :)

Edited by boomer41
Typo
Posted

ParallelGCThreads heißt soviel wie ParallelGarbaceCollectorThreads. GarbaceCollection ist zu Deutsch den unbenutzten Müll löschen, damit RAM frei wird :)

Upps! My Bad! Poste du dann doch bitte die richtige Flag, bevor ich wieder das falsche kopiere :D

Posted

Hi,

sry Corona, aber da muß ich boomer41 zustimmen, es gibt keinen Startup-Flag.

Selbst wenn es einen geben würde, würde das nix ändern, da wie schon gesagt wurde die komplette Renderingengine in einem Thread abläuft und du kannst einen Thread nicht auf mehreren Kernen laufen lassen, da ein Thread im Grunde ganz einfach gesagt eine einzige Abfolge von Ereignissen ist und diese kannst du nicht einfach aufteilen.

Man könnte theoretisch den Core wechseln, wenn der aktuelle zu sehr ausgelastet ist, aber selbst das wird normal nicht gemacht, da der Thread pausiert und alle States des Threads zum anderen Core übertragen werden müssen, was den kompletten Thread und somit das Programm "hängen" lässt.

Um Minecraft wirklich Multithreaded zu machen müsste z.B. auch der Tick aufgeteilt werden, so das man sagt, in einem werden z.B. Fluids abgearbeitet und in einem anderem Redstone (das ist jetzt nur ein Beispiel um die Sache zu verdeutlichen). Aber leider ist das ganze Thema nicht ganz so einfach, wie es klingt, vorallem, wenn ein Programm von Anfang nicht dafür ausgelegt ist. ;)

-Yuki

Posted

Vielen Dank für die schnellen Antworten :)

Also ist das nur Augenauswischerei wenn Server Hoster ihre Server mit 4,8,12 CPU Kernen anbieten?

Und wie ist das bei den großen Server? Ich habe da gehört da werden die Welten auf verschieden Kernen aufgeteilt ... Klingt nicht ganz plausibel in diesem Fall... Ist da gemeint das die Welten auf mehreren Servern aufgeteilt werden?

LG Stern

Posted

Dann war ich wohl mein Leben lang etwas verwirrt o.O Gut, dass ich jetzt auch gescheiter bin. Und das mit den Welten auf die Kerne aufteilen; das wird dann das OS so übernehmen wie es gerade passt denke ich.

Posted

Also ist das nur Augenauswischerei wenn Server Hoster ihre Server mit 4,8,12 CPU Kernen anbieten?

Jein.

Wenn du einen Vanilla Server hast ja.

ABER

Wenn du jetzt rechenintensive Plugins hast (DIE IN EINEM EIGENEN THREAD ARBEITEN), dann nicht. Dann lohnt es sich schon. Aber solche Plugins gibt es (fast) nicht.

Posted

Hi,

es gibt auch noch eine Möglichkeit.

Wenn man mehrere Server auf einer Machine laufen hat, welche per BungeeCord verbunden sind, so kann man ja mehrere Welten in einem System haben, welche auf unterschiedlichen Cores laufen können, da hierbei ja mehrere Minecrafts aktiv sind und jedes für sich kann ja durchaus einen anderen Core verwenden.

-Yuki

  • 2 weeks later...
Posted

Ich habe da gehört da werden die Welten auf verschieden Kernen aufgeteilt

Mehr oder weniger. Java-Threads laufen unabhängig von den CPU-Threads. Nicht umsonst läuft mein Client mit 30-40 Threads ( frag lieber net ). Die Threads werden dann nach Prioritätsliste, Rechenzeitsicherung etc. an die CPU-Threads "weitergeleitet" und dort dann bearbeitet. Das ganze passiert ebend auch parallel ( Multitasking / Multithreading ). Das Problem bei Minecraft-Clients ist, dass LWJGL als Schnittstelle zu OpenGL nutzen, und diese Schnittstelle bzw. auch OpenGL nur Singlethreading zulassen. Das heißt alle Grafiken laufen über den einen "LWJGL"-Thread. Zudem werden hier dll-Daten verwendet die ebenfalls mit OpenGL zusammenhängen ( Beispielthaft: jinput -> Keyboard/Mouse ).

( Ich für meinen Teil hoffe auf eine Schnittstelle zur Vulkan-API - unterstützt Multithreading )

Der Fakt bei den Server ist, dass Mojang probiert die Tasks möglichst synchron zu halten, um geringe Einbußen zu haben, da ein System, welches auf asynchronen Berechnungen basiert extrem anfällig ist und ( für Mojang ) unnötige Arbeit ist, da die komplette Engine neu geschrieben werden müsste. Wenn man jetzt die Welten betrachtet, laufen diese auf mehrere Tasks aufgeteilt. Jedoch gibt es einige Methoden die inkompatibel mit mehreren Zugriffen sind.

(Btw. Auslagern auf andere Threads entlastet nicht gerade den Arbeitsspeicher. Da kommt noch ein bisschen Verwaltung dazu + die Threads. )

Mfg,

Spartaner

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...
B
B