Изменение размера stxxl: векторный кеш

В моем алгоритме у меня есть два этапа:

1) Заполнение файла записями с использованием большой структуры данных X, которая занимает как можно больше оперативной памяти. 2) Сортировка файла. Теперь памяти много, так как X освобожден

Поэтому я хотел бы обработать файл и его сортировку с помощью STXXL. Но на первом этапе пространство для кэша STXXL очень ограничено, а на втором должно быть достаточно.

Поэтому в идеале я хотел бы создать stxxl::vector на первом этапе с небольшим кэшем, заполнить его, а затем увеличить его размер во время сортировки, чтобы ускорить процесс. Однако я не могу найти функцию для изменения размера кэша вектора.

Одним из решений, которое я вижу, является запись в простой "фиктивный" двоичный файл на первом этапе и создание из него stxxl::vector, но это приведет к двойному использованию пространства, так как и "фиктивный" файл, и stxxl:: вектор будет существовать одновременно в некоторой точке. Так каков верный способ использовать stxxl для этого?

1 ответ

В общем, stxxl::vectorРазмер кэша можно изменить, установив CachePages-Параметр, как описано в stxxl:: VECTOR_GENERATOR. Это отвечает на ваш вопрос?

Другие вопросы по тегам