refactor(jobs, allocator): optimize queues & dependencies

Major refactor of job system and memory allocator:
- Replaced threadIndex with preferLocal for scheduling
- Switched local queues to SPMCQueue for better performance
- Introduced lock-free JobEdge pool for dependencies
- Removed remainingBatches; use ref counting for completion
- Updated all scheduling APIs and tests to new model
- Optimized FreeList struct sizes and block management
- Added allocation benchmarks
- Disabled OwnershipTransferAnalyzer temporarily
- Bumped assembly versions
This commit is contained in:
2026-04-22 13:51:14 +09:00
parent b7d61488bb
commit a704cb19ec
20 changed files with 597 additions and 389 deletions

View File

@@ -42,7 +42,7 @@ public class TestJobSystem
result = result
};
var handle = s_jobScheduler.Schedule(ref job, -1);
var handle = s_jobScheduler.Schedule(ref job);
s_jobScheduler.Wait(handle);
Assert.AreEqual(4.0f, *result);
@@ -59,7 +59,7 @@ public class TestJobSystem
result = result
};
var handle1 = s_jobScheduler.Schedule(ref job1, -1);
var handle1 = s_jobScheduler.Schedule(ref job1);
var job2 = new AddJob
{
@@ -67,7 +67,7 @@ public class TestJobSystem
result = result
};
var handle2 = s_jobScheduler.Schedule(ref job2, -1, handle1);
var handle2 = s_jobScheduler.Schedule(ref job2, handle1);
s_jobScheduler.Wait(handle2);
Assert.AreEqual(8.0f, *result);