1

我一直在高度时间敏感的软件中使用谷物,每一微秒都很重要。我的程序循环运行并struct在每次迭代时序列化 a 。struct包含一些 STL 容器和字符串,因此大小在迭代之间可能会有所不同。

我注意到谷物在第一次序列化时完成的时间要长得多,而在随后的序列化尝试中时间要少得多。第一次大约需要 600 微秒,然后平均为 80 微秒。

在通过图书馆追踪后,我无法确定第一次尝试与其他所有尝试有什么不同。我猜这与解析 mystruct或为stringstream.

我发现这篇文章很有趣,特别是关于扩展谷物类以不使用流的建议。我试图创建一个BinaryOutputArchive使用void*缓冲区而不是 a的类的版本std::ostream,但未能成功编译。rdbuf我也尝试按照这里的stringstream 建议玩,但我无法让它正确序列化。

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

4

0 回答 0