Мне в процессе работы программы необходимо прочитать файл размером
порядка 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;
}
особого различия я не заметил.
Похожие темы
- Форум Интересно! (2004)
- Форум Некопирование файлов (2009)
- Форум Recv снова в ожидании,в то время как Send уже все передал. (2015)
- Форум пишу wav-player (2003)
- Форум пишу wav-player (2003)
- Форум Поиск в файле / FindPattern(); (2002)
- Форум многопоточное копирование фала через сокет (2015)
- Форум Парсинг 3ds файла -> добраться бы до OBJ_TRIMESH (0x4100) (2013)
- Форум Блокировка каналов ввода-вывода в линукс (2024)
- Форум Количество слов в файле (2014)