在实时应用程序中最坏情况下执行的最快c++映射
Fastest C++ map for worst-case time execution in a real time app?
我正试图弄清楚我想要如何在实时音频应用程序中存储定时事件,该应用程序可能会在时间上跳跃很多,并且需要以最低的延迟运行。基本上,引擎知道"现在"是什么时间,但"现在"可能是非线性的,未来可能会有多个"现在"。我想知道是否:
a)当可能有数千个条目时,用时间值作为键值的c++映射甚至是可行的B)哪个映射表或哈希表实现会给我最好的性能,其中最佳意味着最低的最差情况执行,而不是最低的平均执行。即使偶尔需要花费很长时间的实现也是不可用的,具有更确定结果的实现会更好。C)对于一堆事件共享相同的现在,应该使用某种哈希多映射或链接在给定时间的所有事件的列表?
我也愿意接受任何其他关于如何做到这一点的建议,或指向资源的指针。时间以自己的格式编码,表示sections:bars:beats:ticks
谢谢!伊恩•
没有什么可以让你从配置文件你的代码,并看到自己。
使数据类型尽可能容易更改,保持一切模块化和参数化,然后只运行一些测试。
从std::multimap
和std::unordered_multimap
开始,以时间为关键。两者都应该有很好的表现。也可以尝试一些不同的分配器。
相关文章:
- 删除一个线程上有数百万个字符串的大型哈希映射会影响另一个线程的性能
- C++映射:具有自定义类的运算符[]不起作用(总是返回0)
- 将函数类成员映射到类本身内部
- 如何在 C# 中映射双 C 结构指针?
- 如何在C++中使用结构生成映射
- 使用std::函数映射对象方法
- 如何加载(或映射)文件部分的最大大小,但适合在Windows上的RAM
- C++映射分割错误(核心转储)
- 内联映射初始化的动态atexit析构函数崩溃
- 使用"std::unordereded_map"映射到"std::list"对象
- 如何从多映射中删除特定的重复项
- 在未初始化映射的情况下,将值插入到映射的映射中
- QT通过C++添加映射QML项目
- 在c++中访问int到类对象的映射时出错
- 在C++中搜索嵌套多映射值
- 错误处理.将系统错误代码映射到泛型
- C++匿名结构作为std::映射值
- 如何从存储在std::映射中的std::集中删除元素
- 递归无序映射
- 正在VS调试器中监视映射条目