Mojang / DataFixerUpper

A set of utilities designed for incremental building, merging and optimization of data transformations.
MIT License
1.2k stars 138 forks source link

Split up bootstrap tasks and submit individual ones to the executor. #29

Closed RainWarrior closed 6 years ago

RainWarrior commented 6 years ago

Same as #28, but without manual task splitting, since the executor is doing that.

aikar commented 6 years ago

This bombards the process with hundreds of threads (I think I saw it go over 1k). That is why I did what I did in my PR.

MC is using a Cached Thread Pool. Unless you change that on MC, this is not good.

Now, overall I do prefer the cleaner approach here, but really needs clarity that it needs to use a queued executor instead.

ichttt commented 6 years ago

Can confirm, 1.13.2 pre 1 creates over 1000 threads at startup (for reference: 1.13.1 needs about 50). This really lags out some systems completly.

LordRalex commented 6 years ago

Just to mark this as a reference, this change introduced 2 bugs which will kill the game on old hardware (below minimum requirements, but generally dual cores with no SMT/HT available).

https://bugs.mojang.com/browse/MC-137353 https://bugs.mojang.com/browse/MC-138093

winnipeg21 commented 5 years ago

When opening 1.13 my computer does 5fps causing other programs to also lag or crash.