On 09/22/2016 06:25 AM, Georg Gast wrote:
Could you please elaborate what is different in your archive?
The Boost.Serialization archives use iostreams as a generic mechanism for inputting and outputting data. This comes with the added performance cost as you have discovered. My output archives use a buffer interface class along with buffer traits to determine how to write data to a given container. These buffer traits are described at: http://breese.github.io/trial/protocol/trial_protocol/buffer.html There are specializations for the most common standard container types, so you can pass a std::string (or std::vector or std::ostream) directly in the constructor. My input archives simply take a string view as input. I have not had the need for anything else.