更改stxxl的大小:向量缓存

时间:2015-08-06 20:32:17

标签: c++ stxxl

在我的算法中,我有两个阶段:

1)使用大数据结构X填充带有记录的文件,该结构占用尽可能多的RAM 2)对文件进行排序。现在有很多内存,因为X被解除分配

所以我想用STXXL处理文件及其排序。但是,在第一阶段,STXXL缓存的空间非常有限,而在第二阶段,应该有足够的空间。

理想情况下,我想在第一阶段创建一个带有小缓存的stxxl :: vector,填充它,然后在排序期间增加它的大小以加快速度。但是,我找不到更改向量缓存大小的函数。

我看到的一个解决方案是在第一阶段写入一个简单的“虚拟”二进制文件,并从中创建一个stxxl :: vector,但它会导致空间的双重使用,因为两者都是“虚拟” file和stxxl :: vector将在某个时刻同时存在。那么利用stxxl的真正方法是什么呢?

1 个答案:

答案 0 :(得分:0)

通常,stxxl::vector的缓存大小可以通过设置CachePages - 参数来更改,如stxxl::VECTOR_GENERATOR中所述。 这会回答你的问题吗?