改变stxxl:矢量缓存的大小
Changing the size of stxxl:vector cache
在我的算法中我有两个阶段:
1)使用占用尽可能多的RAM的大数据结构X填充文件中的记录2)整理文件。现在有很多内存,因为X被释放了
所以我想处理文件和它的排序与STXXL。但是,在第一阶段,STXXL缓存的空间非常有限,而在第二阶段应该有足够的空间。
所以理想情况下,我想在第一阶段用小缓存创建一个stxxl::向量,填充它,然后在排序过程中增加它的大小以加快速度。然而,我找不到一个函数来改变矢量的缓存大小。
我看到的一种解决方案是在第一阶段写入一个普通的"虚拟"二进制文件,并从中创建一个stxxl::vector,但这会导致空间的双重使用,因为"虚拟"文件和stxxl::vector在某些时候会同时存在。那么使用stxxl的真正方法是什么呢?
一般来说,stxxl::vector
的缓存大小可以通过设置CachePages
-参数来改变,如stxxl::VECTOR_GENERATOR中所述。这样回答你的问题了吗?
相关文章:
- cmake更新缓存的变量
- 试图对缓存进行跨步测试,但程序并没有结束
- 缓存std::数组的选定元素,并在c++中自动保持其一致性
- 通过ccmake在cmake中缓存依赖选项
- 使用宏扩展的泛型:为什么指令缓存使用不当?
- 如何使缓存线程安全
- 存储指令是否会阻止缓存未命中的后续指令?
- 缓存局部性与函数调用
- Qt 网页程序集缓存
- 多线程减慢程序速度:无错误共享,无互斥锁,无缓存未命中,无小工作量
- std::shared_ptr vs std::make_shared:意外的缓存未命中和分支预测
- 多个 rocksdb 实例:使用单个共享缓存还是多个独立缓存?
- 无法链接 LRU 缓存C++
- 空函数的参数是否加载到缓存中?
- 是否可以检查变量是否位于 L1/L2/L3 缓存中
- dynamic_cast每次调用是否比具有空检查的缓存变量更昂贵?
- C++:如何在从给定缓存中排除数字的同时生成随机数
- 如何对0,1,..中的k个随机数进行采样..,n-1,而不缓存到数组
- 缓存大量回调,然后批量调用它们,无需v表成本
- 改变stxxl:矢量缓存的大小