Hacker News new | past | comments | ask | show | jobs | submit login

I think it's just for simplicity, since all that copying can't be faster than passing in a reference to it.



You might be surprised. For small structs, copying is very fast and may give you a result with better locality. Passing around structs by pointer means more pointer dereferencing, which has its own overhead and can cause cache misses.

Performance of modern CPUs is very nonobvious.


You are correct. On a much larger project with a similar software engine, if I change all structs I pass by value to pass by reference my instruction count shoots up by 40% according to cachegrind (flto + ofast).

Amazing how powerful pass by value can be when it comes to pod structs.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: