Some embedded architectures, ABIs, message sizes, and compilers may benefit from passing messages by value rather than reference. For example, in-order RISC processors that can pass the entire message struct by value in registers are a good candidate. This saves storing the message to memory and retrieving it from memory for each callback. Benchmarking pass-by-reference vs pass-by-value for an individual use case will still be useful to determine which option is better for that use case.