最快的C ++地图,用于在实时应用程序中执行最坏情况的时间?

时间:2011-12-21 01:47:46

标签: c++ audio hashmap hashtable real-time

我正在试图弄清楚我希望如何将实时音频应用程序存储在实时音频应用程序中,这些应用程序可能会及时跳转,并且需要以尽可能低的延迟运行。基本上引擎知道“现在”的时间,但“现在”可能是非线性的,未来会有多个'现在'。我想知道是否:

a)当有数千个条目时,由时间值键入的某些时间的C ++映射甚至是可行的 b)哪个映射或散列表实现将给我最好的性能,其中最好的意味着最低的最坏情况执行,而不是最低的平均值。甚至偶尔需要很长时间的实现将无法使用,具有更确定性结果的东西会更好。 c)对于现在共享相同的一堆事件,是否应该使用某种哈希多图或在给定时间链接所有事件的列表?

我对如何做到这一点或指向资源的任何其他建议持开放态度。时间以它自己的格式编码,代表部分:bars:beats:ticks

谢谢! 伊恩

1 个答案:

答案 0 :(得分:4)

没有什么可以让您免于个人资料您的代码并亲眼看到。

使数据类型尽可能易于更改,保持所有模块化和参数化,然后运行一些测试。

std::multimapstd::unordered_multimap开头,时间为关键。两者都应该有相当不错的表现。尝试一些不同的分配器。