Serialization Performance
I am using Boost Serialization as a basic RPC mechanism on an embedded Linux system, however it seems that the serialization library uses a lot of CPU cycles to process some rather simple messages. Each of the messages I am using passes a pointer to an object that is a serializable object representing the needed parameters for each type of message. As each message/command is passed from one system to another, the pointer is filled in with the de-marshaled parameters. So far this has worked splendidly except for the CPU utilization. The embedded processor is an Arm running at 300 MHz, and when I send it repeated messages the CPU utilization pegs. Profiling has revealed that the embedded processor is spending all its time in serialization library. For the most part, the message being sent back and forth are arrays of chars under 255 in size. Are there some general guidelines when considering performance with this library ? For instance, I read that the performance of 1.34 increased substantially with the use of a streambuf and a binary archive for arrays of basic types. However, the constructor that takes a streambuf is only available in the binary archive, and I am using a text archive to avoid ending and alignment issues. Is the use of a pointer for the parameters a place for optimization ? Andy
"Andrew VanUitert"
participants (2)
-
Andrew VanUitert
-
Robert Ramey