[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: mmap на больших файлах ?



On 2003.11.03 at 20:28:01 +0200, Sergei Olonichev wrote:

> >
> >А зачем вам больше? 32 бита вполне хватит для Ваших 50k.
> >
> Так в этом то и вопрос. Просто вызывать mmap на каждый блок (условно 
> 50k) - это, здается мне, ни чем не лучше чем вызывать fread (с точки 
> зрения скорости), а может еще и хуже.

Ну, во-первых, стоило бы протестировать. Все-таки минус одно копирование
kernelspace -> userspace.

Во-вторых, можно (если есть основания полагать, что следующие 50К будут
в пределах осмысленного куска от предыдущих) делать mmap на, скажем,
полгига, и запоминать смещение начала и конца. И делать unmap и другой
map только если следующее чтение оказывается за пределами этого окна.

Или, как вариант - держать два mmap-ленных окна - одно фиксированное,
там где живут наиболее часто читаемые блоки, второе - там, где
понадобилось прочесть блок за пределами этого окна. 



Reply to: