我一直在高度时间敏感的软件中使用谷物,每一微秒都很重要。我的程序循环运行并struct
在每次迭代时序列化 a 。struct
包含一些 STL 容器和字符串,因此大小在迭代之间可能会有所不同。
我注意到谷物在第一次序列化时完成的时间要长得多,而在随后的序列化尝试中时间要少得多。第一次大约需要 600 微秒,然后平均为 80 微秒。
在通过图书馆追踪后,我无法确定第一次尝试与其他所有尝试有什么不同。我猜这与解析 mystruct
或为stringstream
.
我发现这篇文章很有趣,特别是关于扩展谷物类以不使用流的建议。我试图创建一个BinaryOutputArchive
使用void*
缓冲区而不是 a的类的版本std::ostream
,但未能成功编译。rdbuf
我也尝试按照这里的stringstream
建议玩,但我无法让它正确序列化。
有没有人对如何提高谷物的性能提出建议,尤其是在第一次序列化时?或者也许是一种实现确定性延迟的方法?我的上述尝试是否走在正确的轨道上?