
From the profiling I did I'm pretty sure that the performance problems had to do with the construction/destruction of the archive classes, and probably had nothing to do with the actual serialization.
The tests I ran were remote method invocations over a loopback TCP connection, to a thread in the same process. Each invocation involves creating 4 archive objects (passing args in and out on both client and server ends), and with Boost.Serialization I couldn't get beyond 1000 invocations/sec, while getting almost 5000 when using my own serialization framework.
Just a naive question: Can the archive objects be recycled? If there is any memory allocation in during archive construction (or if they were constructed on the heap), then that will likely dwarf all other factors. Just a quick 2c worth, John.