为fopen分配更多内存

时间:2016-06-07 19:26:47

标签: c++ fopen bzip2

我有一个用bzip2读取和压缩的大型二进制文件。我正在尝试减少压缩时间,因为它需要大约1分30秒才能完成。

我想尝试的一件事是为fopen扩展缓冲区的大小。但是,我注意到在压缩过程中分配的内存几乎不超过7,000K。

这是我的代码:

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 个答案:

没有答案