Jump to content

Recommended Posts

Posted (edited)

I’ve heard that while Minecraft is technically multi-threaded, it is a primarily single threaded game because it does most of the work in a single thread. Is this true?

If so, does that go for servers as well as clients? Would a Minecraft server be able to fully utilize a processor with 8 or even 16 threads, or would a few of these threads not be utilized?

Edited by Jipthechip
  • 6 months later...
Posted

I am playing modded 1.12.2, and my w7 taskmanager says that my minecraft javaw.exe uses 46 threads.... and i have a 4core/4 threads  cpu (ItelCore2 QuadCPU Q9400).

Could someone explain what that means?

  • 4 months later...
Posted (edited)
  On 5/31/2020 at 5:43 AM, Kiljaeden053 said:

Specifically everything Mojang coded. so having separate cores for updating entities, blocks, would make the game faster.

Expand  

Except that would break every world interaction as well as cause a ton of concurrency issues.

Adding more threads doesn’t mean the game would be faster and better; threading is not a magical solution to all performance issues.

 

Threading should only be used if the routine to be put on another thread makes sense to be on another thread (i.e. make the checking for update routine separate from the main game thread, or separate the render thread from the game logic thread (not Minecraft specific)). It is not as simple as totalTimeUsed / threadCount = actualTimeUsed.

Edited by DavidM
  • Thanks 1

Some tips:

  Reveal hidden contents

 

Posted
  On 5/31/2020 at 5:58 AM, DavidM said:

Except that would break every world interaction as well as cause a ton of concurrency issues.

Adding more threads doesn’t mean the game would be faster and better; threading is not a magical solution to all performance issues.

 

Threading should only be used if the routine to be put on another thread makes sense to be on another thread (i.e. make the checking for update routine separate from the main game thread, or separate the render thread from the game logic thread (not Minecraft specific)). It is not as simple as totalTimeUsed / threadCount = actualTimeUsed.

Expand  

In your opinion. What would be the best solution to make the game more optimized on large servers?

Posted
  On 5/31/2020 at 6:28 AM, Kiljaeden053 said:

In your opinion. What would be the best solution to make the game more optimized on large servers?

Expand  

Depending on the game type of the server, it may be more up to how server plugins are written rather than the game itself (i.e. mini game servers rely heavily on the performance of the mini game plugins).

 

As for optimizing the game itself, projects like Spigot provide tweaked server jars that might improve server performance.

  • Thanks 1

Some tips:

  Reveal hidden contents

 

  • Guest locked this topic
Guest
This topic is now closed to further replies.

Announcements



  • Recently Browsing

    • No registered users viewing this page.
  • Posts

    • Add the crash-report or latest.log (logs-folder) with sites like https://mclo.gs/ and paste the link to it here  
    • Cracked Launchers are not supported
    • Hi, I have a problem in minecraft java (only in forge 1.20.1), When I start the game after a moment the game crashed with code 1 this only in forge 1.20.1 , I tried to reinstall java, Upgrade java to 17, update the drivers to the latest version, downgrade the drivers to the pervious version, deleting .minecraft and reinstall it , but none of these ways working.   here is the log:   [Launcher] Launching Minecraft... I'm hiding! mods after C:\Users\Windows\AppData\Roaming\.minecraft\mods\tl_skin_cape_forge_1.20_1.20.1-1.32.jar [InnerMinecraftServersImpl]  search changers of the servers read servers from servers.dat [] [InnerMinecraftServersImpl]  prepare inner servers save servers to servers.dat [Launcher] Game skin type: TLAUNCHER [Launcher] Starting Minecraft Forge 1.20.1... [Launcher] Launching in: C:\Users\Windows\AppData\Roaming\.minecraft Starting garbage collector: 96 / 227 MB Garbage collector completed: 60 / 214 MB [Launcher] Processing post-launch actions. Assist launch: true =============================================================================================== [05:29:03] [main/INFO]: ModLauncher running: args [--username, *********, --version, Forge 1.20.1, --gameDir, C:\Users\Windows\AppData\Roaming\.minecraft, --assetsDir, C:\Users\Windows\AppData\Roaming\.minecraft\assets, --assetIndex, 5, --uuid, *************************************, --accessToken, вќ„вќ„вќ„вќ„вќ„вќ„вќ„вќ„, --clientId, null, --xuid, null, --userType, mojang, --versionType, modified, --width, 925, --height, 530, --launchTarget, forgeclient, --fml.forgeVersion, 47.3.22, --fml.mcVersion, 1.20.1, --fml.forgeGroup, net.minecraftforge, --fml.mcpVersion, 20230612.114412] [05:29:04] [main/INFO]: ModLauncher 10.0.9+10.0.9+main.dcd20f30 starting: java version 17.0.12 by Oracle Corporation; OS Windows 10 arch amd64 version 10.0 [05:29:15] [main/INFO]: Loading ImmediateWindowProvider fmlearlywindow [05:29:24] [main/INFO]: Trying GL version 4.6 [05:29:60] [main/INFO]: Requested GL version 4.6 got version 4.6 [05:29:67] [main/INFO]: SpongePowered MIXIN Subsystem Version=0.8.5 Source=union:/C:/Users/Windows/AppData/Roaming/.minecraft/libraries/org/spongepowered/mixin/0.8.5/mixin-0.8.5.jar%23100!/ Service=ModLauncher Env=CLIENT FATAL ERROR in native method: Thread[pool-2-thread-1,5,main]: No context is current or a function that is not available in the current context was called. The JVM will abort execution.     at org.lwjgl.opengl.GL11C.nglGetString(org.lwjgl.opengl@3.3.1+7/Native Method)     at org.lwjgl.opengl.GL11C.glGetString(org.lwjgl.opengl@3.3.1+7/GL11C.java:978)     at net.minecraftforge.fml.earlydisplay.DisplayWindow.initRender(fmlearlydisplay@1.20.1-47.3.22/DisplayWindow.java:209)     at net.minecraftforge.fml.earlydisplay.DisplayWindow.lambda$start$5(fmlearlydisplay@1.20.1-47.3.22/DisplayWindow.java:292)     at net.minecraftforge.fml.earlydisplay.DisplayWindow$$Lambda$437/0x000001fab120a618.run(fmlearlydisplay@1.20.1-47.3.22/Unknown Source)     at java.util.concurrent.Executors$RunnableAdapter.call(java.base@17.0.12/Executors.java:539)     at java.util.concurrent.FutureTask.run(java.base@17.0.12/FutureTask.java:264)     at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(java.base@17.0.12/ScheduledThreadPoolExecutor.java:304)     at java.util.concurrent.ThreadPoolExecutor.runWorker(java.base@17.0.12/ThreadPoolExecutor.java:1136)     at java.util.concurrent.ThreadPoolExecutor$Worker.run(java.base@17.0.12/ThreadPoolExecutor.java:635)     at java.lang.Thread.run(java.base@17.0.12/Thread.java:842) Here I am! [VersionManager] Refreshing versions locally... [VersionManager] Versions has been refreshed (6 ms) [Launcher] Launcher exited. [Launcher] Minecraft closed with exit code: 1 flush now [Launcher] [Crash] Signature "Bad video drivers" matches! [Crash] Signature "Bad video drivers" matches! [Launcher] [Crash] Crash has been recognized! [Crash] Crash has been recognized! flush now
  • Topics

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.