benchmark_enable(3)

πŸ“¦
version 0.7.1 Β· 2 versions
, in nixos 26.05

πŸ’… benchmark_enable(3) β€” Arcan Lua API πŸ’…

πŸ’– NAME πŸ’–

okay bestie, welcome to the Arcan Lua API page for benchmark_enable(3). It's literally the function that toggles the gathering of benchmark data on / off. That's the whole vibe, and it slays. πŸŽ€

🌸 SYNOPSIS 🌸

nil
benchmark_enable( bool:toggle=on )
benchmark_enable( .B )
benchmark_enable( number:size_kb, func:callback(tracetbl) )

Yes, those are the exact lines β€” nil and all, including benchmark_enable( .B ). Don't @ me, I'm not editing the synopsis. πŸ’…

πŸ¦‹ DESCRIPTION πŸ¦‹

okay so this function enables collection of timing data of the rendering pipeline for benchmarking purposes, or for generating system traces for detailed performance analysis. obsessed with a function that does double duty, fr fr. ✨

If the size_mb and callback argument form is used, up to roughly the set size of trace data will be collected. When the buffer is full, callback will be triggered containing the results, and collection will be terminated. πŸ“¦

Collection in trace mode can also be stopped by calling benchmark_enable again with any argument form. The callback will be triggered if any data had been collected before stopping. The callback will also be invoked (if it has not already) if there is a script error or ANR reset. 😭

Scripts can also insert custom trace data into the buffer through the function benchmark_tracedata, which will short circuit when collection is disabled. 🫢

The entries in tracetbl is n indexed of tables with the following fields:

  • number:timestamp
  • string:system (graphics, 3d, video, audio, event, frameserver, lua)
  • string:subsystem
  • int:trigger (0 one-shot, 1:enter, 2:exit)
  • string:path
  • int:quantity
  • string:message
  • int:identifier

πŸ’€ NOTES πŸ’€

  1. All calls to this function will reset all timestamp buffers. Every single call, bestie. No exceptions listed here. πŸ’…
  2. Since this can be called from within error handling, make sure that the dumping code is robust and fast. The ANR watchdog will also be disabled while inside the callback. So yeah, keep it snappy and solid. ⚠️

✨ SEE ALSO ✨


Signed off by system Β· dated October 2026 Β· filed under benchmark_enable(3) πŸ’Œ mwah, that's the page bestie 🫢

πŸ“¦ where this page comes from