On Monday, 21 March 2016 at 23:31:06 UTC, ref2401 wrote:
I have got a plenty of structs in my project. Their size varies from 12 bytes to 128 bytes. Is there a rule of thumb that states which structs I pass by value and which I should pass by reference due to their size?

Thanks.

Not really. It depends on the platform - most especially on the details of the cache hierarchy, I think.

The best answer to this kind of thing is generally: Do some benchmarks. (Although, you'll have to be somewhat skilled at benchmarking to get useful results, since the performance difference in most code is probably not that large either way.)

Note, also, that functions which are doing so little work with their arguments that you can actually notice the speed difference of pass-by-ref versus pass-by-value for small data structures are likely to be inlined anyway - in which case it makes no difference which you chose (I think...).

If you really just want a number, though - maybe try pass-by-reference for anything larger than 32 bytes.

Reply via email to