clovers
clovers copied to clipboard
Feature: gather statistics during a render job
It would be nice to be able to optionally collect some statistics during a render job.
This could include for example:
- Time spent at various stages; parsing, initializing, rendering, post-processing
- Memory usage, allocations and deallocations
- Counts of certain method calls
- Counts of rays, objects, acceleration structure details
One promising option for this could be Apache Arrow for the in-memory representation and Parquet for serialization. This could have low overhead at runtime and excellent tooling support for querying and analyzing after serialization to disk.
Another option to consider is leaning more into OpenTelemetry and tracing, creating spans. This would have good support in the observability tooling, including waterfall graphs and seeing the nesting levels. On the other hand, this might be a bad match for a software with such a high event count.