Using C++ I quickly learned that I should pass large std::vector by reference.
Passing a std::vector by reference (using &) as a parameter for a function will save you from the operation of copying the std::vector into a local copy.
For my next game I was getting bad performance parsing jsons.
It turns out that nearly the entire CPU time spent on parsing the json was due to passing std::string by value in internal functions.
Passing std::string by reference will save you from a copy operation of that string.