改变stxxl:矢量缓存的大小

Changing the size of stxxl:vector cache

本文关键字:缓存 stxxl 改变      更新时间:2023-10-16

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

1)使用占用尽可能多的RAM的大数据结构X填充文件中的记录2)整理文件。现在有很多内存,因为X被释放了

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

所以理想情况下,我想在第一阶段用小缓存创建一个stxxl::向量,填充它,然后在排序过程中增加它的大小以加快速度。然而,我找不到一个函数来改变矢量的缓存大小。

我看到的一种解决方案是在第一阶段写入一个普通的"虚拟"二进制文件,并从中创建一个stxxl::vector,但这会导致空间的双重使用,因为"虚拟"文件和stxxl::vector在某些时候会同时存在。那么使用stxxl的真正方法是什么呢?

一般来说,stxxl::vector的缓存大小可以通过设置CachePages -参数来改变,如stxxl::VECTOR_GENERATOR中所述。这样回答你的问题了吗?