在我的算法中,我有两个阶段:
1)使用占用尽可能多RAM的大数据结构X用记录填充文件2)对文件进行排序。现在,由于X已释放,因此存在大量内存
所以我想用STXXL来处理文件及其排序。但是,在第一阶段,STXXL缓存的空间非常有限,而在第二阶段,应该有足够的空间。
因此,理想情况下,我希望在第一阶段使用小缓存创建一个stxxl::vector,填充它,然后在排序过程中增加它的大小以加快速度。然而,我找不到一个函数来改变向量的缓存大小。
我看到的一种解决方案是在第一阶段写入一个普通的“虚拟”二进制文件,并从它创建一个stxxl::vector,但这将导致空间的双重使用,因为“虚拟”文件和stxxl::vector将在某一时刻同时存在。那么,利用stxxl实现此目的的真正方法是什么?
发布于 2015-09-21 18:58:19
一般来说,stxxl::vector的缓存大小可以通过设置CachePages-Parameter来更改,如stxxl::VECTOR_GENERATOR中所述。这回答了您的问题吗?
https://stackoverflow.com/questions/31865255
复制相似问题