The Carpet timers (file CactusTimers.cc) performs unnecessary work that is not necessary unless timers_verbose is given. It calls the flesh to obtain the timer name, converts this to a C++ string (malloc/free), and back to a C string. This is due to the API of msgStart and msgStop.
The routine serialise changes the output stream properties by modifying the output format (scientific) and the precision. This should be undone afterwards in the same routine.