mirror of
https://github.com/PaperMC/Folia.git
synced 2025-04-23 04:39:19 +08:00
Delay scheduler improvements
It turns out, the scheduler is good enough right now - the main bottlenecks to scaling chunk workers is actually the chunk system locking behavior (mostly schedule lock, but ticket lock is there too)
This commit is contained in:
parent
f9327302d8
commit
147df3c14c
@ -1,5 +1,4 @@
|
|||||||
Get done before testing:
|
Get done before testing:
|
||||||
- make scheduler load chunks better
|
|
||||||
|
|
||||||
Pre-Test: List of things not fully tested
|
Pre-Test: List of things not fully tested
|
||||||
- Task queue
|
- Task queue
|
||||||
@ -18,6 +17,12 @@ Get done after test:
|
|||||||
- sync load info
|
- sync load info
|
||||||
- net.minecraft.commands.Commands
|
- net.minecraft.commands.Commands
|
||||||
- are the race conditions in the weather tick (advanceWeatherCycle) ok?
|
- are the race conditions in the weather tick (advanceWeatherCycle) ok?
|
||||||
|
- make scheduler load chunks better? this requires additional work to:
|
||||||
|
-> reduce scheduler overhead (i.e at 5000 regions, on 16 threads -> overhead is 10%)
|
||||||
|
-> unsure how to reduce scheduler overhead, may need to rewrite it so that the queues
|
||||||
|
are per tick thread and thus it increases parallelism
|
||||||
|
-> reduce chunk system overhead (i.e at 20 workers, ~100 unique concurrent regions, overhead -> 10-30% on both workers AND tick threads (at tick threads ->8)
|
||||||
|
-> the only way out of the chunk system overhead is to make the scheduling more parallel - it requires scheduling lock and ticket lock
|
||||||
|
|
||||||
Delayed and hopefully will not forget:
|
Delayed and hopefully will not forget:
|
||||||
- api for really a lot of shit
|
- api for really a lot of shit
|
||||||
|
Loading…
x
Reference in New Issue
Block a user