谷类序列化能否更具性能和确定性?

时间:2018-02-20 00:49:56

标签: c++11 serialization cereal

我一直在高度时间敏感的软件中使用cereal,每微秒都很重要。我的程序在一个循环中运行,并在每次迭代时序列化structstruct包含一些STL容器和字符串,因此大小可以在迭代之间变化。

我注意到谷物在第一次序列化时需要更长的时间才能完成,并且后续序列化尝试的时间要少得多。它第一次花了大约600微秒,然后平均80微秒。

在追踪图书馆后,我无法确定第一次尝试与其他所有人的不同之处。我猜测它与解析我的struct或为stringstream分配内存有关。

我发现this post很有意思,特别是建议将谷类扩展到不使用溪流。我尝试创建BinaryOutputArchive类的一个版本,该版本使用void*缓冲区而不是std::ostream,但是没有成功编译。我也尝试使用rdbuf as suggested herestringstream,但我无法正确序列化。

是否有人建议如何提高谷物的性能,特别是在第一次序列化时?或者也许是一种实现确定性延迟的方法?我上面的尝试是否在正确的轨道上?

0 个答案:

没有答案