userDaniel Pcancel
branchrust_reboot/main/useplayerupdatejobs3/updatesubs_optimcancel

17 Commits over 0 Days - ∞cph!

13 Days Ago
Update: disable parallel sub updates in Jobs 3 mode - ripped out test code for network grid preallocing Going to enable it once dependent work is done. Tests: unit tests fail (as expected)
13 Days Ago
Optim: schedule tasks for batches of networkables, instead of individual ones Helps reduce alloc pressure at high counts(2x more than core count), but it's a very rare occasion (when everyone rushes to connect to a fresh server) Tests: unit tests
13 Days Ago
Update: skip calling UpdateSubscriptions with 0 networkables Tests: none, trivial change
13 Days Ago
Optim: main thread integrates results from subs gathering tasks while waiting for them to complete Tests: unit tests
13 Days Ago
Optim: allow main thread to steal one of tasks update subscription tasks Makes single-player path alloc free. Tests: unit tests
13 Days Ago
Optim: use persistent added/removed lists instead of pooled ones Tests: ran unit tests
17 Days Ago
Update(tests): add 8 players perf test to UpdateSubscriptions - add some TimeWarnings to parallel UpdateSubscriptions - got rid of caching all Visible sets, just reuse 1 per task from pool Tests: ran tests
17 Days Ago
Update(tests): Pump up those rookie network streaming range numbers in unit tests (1,2 -> 4,8) to match real servers - rewrote spawning logic in UpdateSubscriptions unit tests to ensure we spawn within main layer 128 player perf test is now showing much better results: Serial - 10.3ms, Parallel - 1.7ms Tests: ran unit tests
18 Days Ago
Optim: run gather network groups in parallel - changed dimensions of net grid in DummyServer, now it's using a 512 grid with 64 cells 128 players: 0.54ms vs 1.15ms of serial. Relies on a prealloc hack, need to support it properly Tests: ran unit tests
19 Days Ago
Optim: UpdateSubscriptions - parallelize network group comparison Gives us ~15% improvement over serial. Hoping to parallelize gather - that's the biggest perf sink Tests: ran unit tests
19 Days Ago
Bugfix(tests): fix perf tests doing nothing in warmup Tests: ran perf tests
19 Days Ago
Update(tests): add perf tests for serial and parallel UpdateSubscriptions Tests: ran it
19 Days Ago
Update(tests): added consistency test for BasePlayer.UpdateSubscriptions - fixed a bug with stepping players who's timestamp is not due yet - Refactored serial code slightly to keep the structure consistent Tests: ran unit test
19 Days Ago
Bugfix(tests): when setting up a dummy server, ensure heighmap is also initialized Needed to accomodate recent changes with tunnel net groups Tests: perf test for snapshot deps now runs
20 Days Ago
Update: rewrite BasePlayer.UpdateSubscriptions into batch form Doesn't actually do anything different, just prep for adding managed tasks to it. Need to add unit tests and perf tests first Tests: booted into Craggy with jobs 3 - was able to see entities in the world
20 Days Ago
Bugfix: PartialCompare - don't miss last object in b listhashset Could lead to a duplicate pushed to removed list Tests: ran unit tests
20 Days Ago
New: ListHashSet.PartialCompare - early outs upon reaching addedLimit and removedLimit - added unit and perf test It still has linear complexity, but does seem to scale better Tests: unit tests