【发布时间】:2015-08-06 20:32:17
【问题描述】:
在我的算法中,我有两个阶段:
1) 使用占用尽可能多 RAM 的大数据结构 X 使用记录填充文件 2) 对文件进行排序。现在有很多内存,因为 X 被释放了
所以我想用 STXXL 处理文件及其排序。但是,第一阶段,STXXL 缓存的空间非常有限,而第二阶段应该有很多。
所以理想情况下,我想在第一阶段创建一个带有小缓存的 stxxl::vector,填充它,然后在排序期间增加它的大小以加快速度。但是,我找不到改变向量缓存大小的函数。
我看到的一个解决方案是在第一阶段写入一个普通的“虚拟”二进制文件,并从中创建一个 stxxl::vector,但这会导致空间的双重使用,因为两个“虚拟” file 和 stxxl::vector 将在某个时候同时存在。那么使用stxxl的真正方法是什么?
【问题讨论】: