MinimallyCorrect / TickThreading

Historical multi-threaded minecraft by @LunNova. Performance over correctness. What could go wrong? Way too much.
https://jenkins.nallar.me/job/TickThreading/
MIT License
143 stars 43 forks source link

TT 1.10.2 Sponge Support? #1264

Open Zilacon opened 7 years ago

Zilacon commented 7 years ago

I decided to give TT a try and it doesn't seem to like Sponge very much. Sponge just spams the console its loading DIM-1 using 200% or more cpu usage until the server is killed.

LunNova commented 7 years ago

Probably due to this patch.

https://github.com/MinimallyCorrect/TickThreading/blob/1.10.2/src/main/java/org/minimallycorrect/tickthreading/mixin/forge/MixinDimensionManager.java

I did it in a lazy way which replaces the entire method, probably wiping out a patch sponge needs.

john01dav commented 7 years ago

I run my server with Sponge currently, and it can't break past 16 tps in general due to the sheer number of TEs in the world (warmroast and TickProfiler both show that it isn't anything in particular causing the issues). As such, TickThreading (as it was with Tekkit Lite at least) is exactly what I need (per-world threading woulden't be useful to me since the server only spends a few ms in any world but the main one). As such + to this working with Sponge :)

Also: Is TIckThreading in a usable state (other than Sponge) right now, or is it still an unstable beta not suitable for production? If it's production ready, does it do per-world or per-region/chunk threading?

LunNova commented 7 years ago

Still an unstable beta - not even working at all, let alone ready for production!

I have a working version of the DimensionManager patch which doesn't break Sponge now using injectables, will try to keep up compatibility as far as possible for other patches.

I expect there will be some cases with sponge API additions/changes required for thread-safety that are too big to patch... we'll see if that happens.