Выделение большего объема памяти для 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")
попытаться обойти это. Очевидно, я не прав.