Выделение большего объема памяти для fopen

У меня есть большой двоичный файл, который читается и сжимается с помощью bzip2. Я пытаюсь уменьшить время сжатия, так как это занимает около 1 минуты 30 секунд.

Одна вещь, которую я хотел попробовать, - это увеличить размер буфера для fopen. Тем не менее, я замечаю, что объем памяти, выделяемой в процессе сжатия, едва превышает 7000K.

Вот мой код:

int bzipError = BZ_OK;
BZFILE *bzipLogFile = BZ2_bzWriteOpen(&bzipError, CompressedLogFile, 9, 0, 30);
const int BUF_SIZE = 200000;
char* Buffer = new char[BUF_SIZE];

while (!feof(LogFile)) {
    const size_t BytesRead = fread(Buffer, (size_t)1, BUF_SIZE, LogFile);
    BZ2_bzWrite(&bzipError, bzipLogFile, Buffer, (int)BytesRead);
}

Я понимаю, что по умолчанию существует ограничение, которое приложение может размещать в куче и стеке, но я использовал

#pragma comment(linker, "/STACK:200000")
#pragma comment(linker, "/HEAP:200000")

попытаться обойти это. Очевидно, я не прав.

0 ответов

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