Skip to content

Onity 0.3.6 - task safety, raycast jobs, and DI performance

Choose a tag to compare

@furkantokkan furkantokkan released this 12 Jul 14:04
· 14 commits to main since this release
6f2dece

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 OnityTask generation, single-consumer, cancellation, main-thread continuation, and AsTask() reuse safety.
  • Makes OnityRaycastCommandBatch own 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