Мне в процессе работы программы необходимо прочитать файл размером
порядка 2 гб, а потом записать в другой файл. Читаю и пишу я через
stdio блоками по 100 байт. Секундомер показал что примерно половину
времени я трачу на работу с диском. Можно ли уменьшить время
ввода-вывода увеличив размер читаемого(записываемого) блока?
На простом тесте :
// test1
int main()
{
char buf[100];
FILE * fp = fopen("input","rb");
while(!feof(fp))
{
fread(buf,1,100,fp);
}
return 0;
}
// test2
int main()
{
char buf[1000000];
FILE * fp = fopen("input","rb");
while(!feof(fp))
{
fread(buf,1,1000000,fp);
}
return 0;
}
особого различия я не заметил.