Python 3.3+Linuxosфункция
os.posix_fadvise
os — советы ядру
Сообщает ядру о предполагаемом характере доступа к файлу (последовательный/случайный) для оптимизации кеша. Доступно на Linux.
Синтаксис
os.posix_fadvise(...)
Только совет: ядро может его проигнорировать, и на правильность программы он не влияет. POSIX_FADV_SEQUENTIAL ускоряет чтение больших файлов подряд, а POSIX_FADV_DONTNEED позволяет не засорять кэш страниц файлом, который больше не понадобится. Длина 0 означает «до конца файла».
Примеры
import os
with open('report.csv', 'w') as f:
f.write('a,b\n1,2\n') # файл для примера — в текущем каталоге
fd = os.open('report.csv', os.O_RDONLY) # → ? только Unix: небольшой номер дескриптора, например 3
os.posix_fadvise(fd, 0, 0, os.POSIX_FADV_SEQUENTIAL) # → ? только Unix: подсказка «читать будем подряд»; length=0 означает «до конца файла»
os.posix_fadvise(fd, 0, 65536, os.POSIX_FADV_WILLNEED) # → ? только Unix: ядро заранее подтянет первые 64 КБ файла в кеш
os.posix_fadvise(fd, 0, 0, os.POSIX_FADV_DONTNEED) # → ? только Unix: после однопроходного чтения просим освободить кеш под этот файл
os.posix_fadvise(fd, 0, 0, 999) # → ? только Unix: OSError [Errno 22] Invalid argument — 999 не является кодом совета
См. также
Частые ошибки
Открыть в полном глоссарииdocs.python.orgСообщить о неточности