求助,写文件为什么越来越慢,后面几百万条记录简直就和爬一样
for (int i = 0 ; i < iMax; i++)
{
........ 省略部分代码
try
{
pFile = fopen(sFileName.c_str(), "a+ ");
fputs(sLine.c_str(), pFile);
}
catch(...)
{
return;
}
}
fclose(pFile)
高手来指点下,是不是一边写还要释放什么资源?
[解决办法]
把pFile = fopen(sFileName.c_str(), "a+ ");放到for循环前面
否则你要打开iMax次文件
[解决办法]
pFile = fopen(sFileName.c_str(), "a+ ");
放到外面去就可以了
[解决办法]
把数据连接成一个大缓冲区后写文件,减少写入次数。