- 论坛徽章:
- 0
|
以下这段代码,主要是根据向量中的内容把一个文件移动到备份目录下,我测试的时候,单独运行,速度很快,但是放在程序里和其它模块一起跑,速度好像慢了几十倍,现在移一个文件,差不多要1秒钟,郁闷,有3千多的文件,不知等什么时候。
vector<string>::iterator ite_vecfileName;
long fileno;
for(ite_vecfileName=balConfig.m_vecfileName.begin(),fileno=0;
ite_vecfileName!=balConfig.m_vecfileName.end();
ite_vecfileName++,fileno++)
{
if( system(("mv -f " + balConfig.m_inputFilePath + *ite_vecfileName
+ " " + balConfig.m_backFilePath).c_str()) < 0 )
{
cout << "出错" << endl;
theErrorMessages->insert(BALSORT_ERROR_RM_FILE,"mv操作出错:" +
balConfig.m_inputFilePath + *ite_vecfileName + "!");
return false;
}
cout << "备份标准话单[system] fileno = " << fileno << endl;
}
这三千个文件有4百万多行,程序开始是主要是把它写入内存中,然后跟另外的三千多个文件(同时也写到内存里了)进行对比,估计这时候用了700多MB吧。后来10分钟,对比成功后,我就打算把源文件备份到另一个备份目录下,但是郁闷的是,这时的MV速度实在是太慢了,不知道是什么原因呢?难道是内存不够吗?但是前面跑的速度是很快的,后面运行一些脚本操作也不应该因为物理设备的原因吧。 |
|