LINUX.ORG.RU

История изменений

Исправление www_linux_org_ru, (текущая версия) :

Ну нате на mmap. ftp://ftp.simtreas.ru/pub/my/shuf-f.c никакого буфера нет, чисто mmap.

посмотрел

если я правильно понимаю, основная работа происходит здесь:

for(sz = l = 0; l < num_lines && sz < n; l++, sz++)
    full_write(f_out, map + shuffle[l].off, shuffle[l].lenght, out_name);

если я правильно понимаю, тут идут рандомные прыжки по замапленному файлу, чтение 1 строки, и последовательная ее запись в выходной файл

если файл раз в 20 превышает к-во оперативки на компе и средняя длина строки 200 байт, то вот мой прогноз:

1. на hdd эта хрень будет записывать выходной файл со скоростью 20 КБ/с

2. на ssd эта хрень будет записывать выходной файл со скоростью 10 МБ/с (если ssd держит 50 000 iops)

понятно, что при 16 ГБ памяти на компе и 10Гб файле все будет намного быстрее, но в таком случае интерес представляет 320ГБ файл, а не эти детсадовские песочницы

Исходная версия www_linux_org_ru, :

Ну нате на mmap. ftp://ftp.simtreas.ru/pub/my/shuf-f.c никакого буфера нет, чисто mmap.

посмотрел

если я правильно понимаю, основная работа происходит здесь:

	for(sz = l = 0; l < num_lines && sz < n; l++, sz++)
		full_write(f_out, map + shuffle[l].off, shuffle[l].lenght, out_name);

если я правильно понимаю, тут идут рандомные прыжки по замапленному файлу, чтение 1 строки, и последовательная ее запись в выходной файл

если файл раз в 20 превышает к-во оперативки на компе и средняя длина строки 200 байт, то вот мой прогноз:

1. на hdd эта хрень будет записывать выходной файл со скоростью 20 КБ/с

2. на ssd эта хрень будет записывать выходной файл со скоростью 10 МБ/с (если ssd держит 50 000 iops)

понятно, что при 16 ГБ памяти на компе и 10Гб файле все будет намного быстрее, но в таком случае интерес представляет 320ГБ файл, а не эти детсадовские песочницы