Onity 0.3.6 - task safety, raycast jobs, and DI performance
Highlights
- Accelerates standard generic DI resolve with dense type-id provider slots while preserving lifetime, diagnostics, rebind, parent fallback, and self-resolve behavior.
- Hardens pooled
OnityTaskgeneration, single-consumer, cancellation, main-thread continuation, andAsTask()reuse safety. - Makes
OnityRaycastCommandBatchown pending jobs, synchronize buffer access, and schedule only active command ranges. - Adds focused IL2CPP benchmark scenario filtering and safer player benchmark scene/build-state restoration.
Performance
Windows IL2CPP singleton release gate, Unity 2022.3.62f3, 1000 samples and 10,000 resolves per sample:
| Container | ns/op |
|---|---|
| Onity standard | 18.80 |
| Onity baked | 17.40 |
| VContainer | 94.39 |
| Zenject | 435.24 |
Onity standard was approximately 80.1% faster than VContainer in the same run. The full Editor/Mono and Windows IL2CPP benchmark tables were also refreshed.
Allocation cells are reported as n/a: the Unity 2022.3 counters did not pass
calibration for known allocating paths, so this release makes no zero-allocation
claim from that benchmark harness.
Verification
- Unity EditMode: 434/434 passed.
- Unity PlayMode: 10/10 passed.
- All 14 current Unity-generated project builds passed.
- Engine-free core, analyzer, and source-generator Release builds passed.
- Windows IL2CPP full benchmark and focused 1000-sample gate passed.
Install
Latest UPM branch:
https://github.com/furkantokkan/Onity.git#upm
Pinned release:
https://github.com/furkantokkan/Onity.git?path=Packages/com.onity.framework#v0.3.6