在我的算法中,我有两个阶段:
1)使用大数据结构X填充带有记录的文件,该结构占用尽可能多的RAM 2)对文件进行排序。现在有很多内存,因为X被解除分配
所以我想用STXXL处理文件及其排序。但是,在第一阶段,STXXL缓存的空间非常有限,而在第二阶段,应该有足够的空间。
理想情况下,我想在第一阶段创建一个带有小缓存的stxxl :: vector,填充它,然后在排序期间增加它的大小以加快速度。但是,我找不到更改向量缓存大小的函数。
我看到的一个解决方案是在第一阶段写入一个简单的“虚拟”二进制文件,并从中创建一个stxxl :: vector,但它会导致空间的双重使用,因为两者都是“虚拟” file和stxxl :: vector将在某个时刻同时存在。那么利用stxxl的真正方法是什么呢?
答案 0 :(得分:0)
通常,stxxl::vector
的缓存大小可以通过设置CachePages
- 参数来更改,如stxxl::VECTOR_GENERATOR中所述。
这会回答你的问题吗?