Benchmark Lua-heavy workloads under Native AOT against native Lua
Extend the isolated Lua AOT probe with identical Lua-heavy numeric, table/sort/allocation and string-processing kernels in LuaCSharp 0.5.7 and KeraLua 1.4.11/native Lua5.4. No host callbacks inside timed kernels. Separate compilation from warmed execution, check results against independently computed controls, repeat sequential runs with CPU affinity where available, and preserve timings/allocation limits and machine context. Worktree /home/mathias/Projects/worktrees/engines-client-lua-aot, branch chore/client-lua-aot-validation. Do not adopt a runtime or change production UI. Verified outcome: added HeavyBenchmark.cs, Scripts/heavy.lua and benchmark_heavy.py to the existing standalone proof, with CLI dispatch only in probe Program.cs. Clean Release Native AOT publish with warnings-as-errors. Identical Lua numeric recurrence, nested-table construction/filter/sort and ASCII format/pattern/concat kernels run without managed callbacks inside timed work. Five fresh processes per runtime/workload, one full warmup and three timed executions each; alternate runtime order, pin runner/children to CPU0 on i7-12700KF. Every checksum and work count verified by independent Python implementations; deliberate incorrect checksum control rejected, zero-work controls verified; compilation timed separately. Scale1 medians native speedups1.67x/2.56x/1.92x. Final scale5 campaign: numeric 142.224ms managed vs85.099ms native (1.67x), tables512.551ms vs199.673ms (2.57x), strings288.744ms vs151.115ms (1.91x). An earlier scale5 campaign gave1.67x/2.44x/1.92x; table/GC variability explicitly documented. Managed cumulative transient allocations per scale5 call: tables336.5MB, strings354.4MB; native allocation volume unmeasured, no misleading cross-heap comparison. No frame-time claim. Compiler/init/warmup/disposal excluded; normal collectors active inside workloads. Reproduction and interpretation appended to probe README.md. Logs, checksums, artifact/library hashes and summaries in .dev-data/lua-aot/heavy and heavy-scale5. Existing functional validator rerun: managed/native functionality still passes; known lifecycle retention and coroutine count-hook failures persist and are not disabled or hidden. Results support a narrow native bridge for Lua-heavy workloads; sandbox/native error/OOM design and Windows/macOS execution remain the previous separate limitations. No commit.
Checklist
0 of 0 completeNo checklist items.
- Area
- Project Rubi-Ka
- Project
- engines
- Kind
- Research
- Task ID
tsk_uja7n58j7h- Updated