【发布时间】:2013-12-02 02:12:14
【问题描述】:
我最近构建了一个严重依赖 stl 队列的应用程序,并且遇到了内存问题,队列变得很大以适应机器内存。是否有任何磁盘支持的开源、IO / 内存高效队列实现可以插入到 stl 队列的位置,从而使我的应用程序神奇地使用更少的 RAM?
我想要一些具有读/写缓冲区机制的东西 - 因为我的应用程序每秒大约有 50k 入队/出队,而且对象相当小。
我的队列包含成对的 32 位整数,使每个条目占用 64 位,链表是不可能的,因为它们会使内存消耗加倍。
【问题讨论】:
-
队列的底层容器是一个双端队列,如果你把它改成一个列表,它会更适合内存(以性能为代价)虽然双端队列的内存效率很高
-
@aaronman,老实说,我已经实现了一个基于循环数组的队列来压缩数据,我想要的是数量级,占用磁盘上的演出
-
基于数组的队列不好,因为这样你就强制内存是连续的
-
@juanchopanza 这就是我的想法,但它似乎有点无人维护 - 那里没有 c++11 支持.. 我可能不得不自己添加它