как использовать linecache.clearcache для очистки кэша определенного файла?

#python #caching

#python #кэширование

Вопрос:

Если я использую linecache для чтения нескольких файлов, и теперь память занята так, что я хочу очистить определенный файловый кэш, а не использовать ‘linecache.clearcache ()’ для очистки всего кэша, что мне делать?

Ответ №1:

У меня было то же соображение, что и у вас.

Итак, я написал тестовые коды самостоятельно. Вы можете это проверить.

https://ideone.com/xHxTEl

В принципе, использование linecache.clearcache() того, что находится вне цикла for, может быть намного быстрее, но при этом будет потребляться гораздо больше оперативной памяти. Оперативная память жертвует скоростью. Скорость может быть в 6 раз быстрее по сравнению с очисткой кэша каждый раз в цикле for!!!

Напротив, вы можете использовать linecache.clearcache() в своем цикле for. Это заняло меньше памяти, но медленно…

Что касается меня, я бы очистил кэш из цикла for и использовал многопоточность для разбиения файлов на блоки. Расширьте оперативную память и поменяйте местами, чтобы быть готовым к быстрой скорости.

Комментарии:

1. Что меня действительно волнует, так это то, как я могу реализовать чтение и запись больших данных на сервере. Таким образом, linecache кажется слишком надежным для оперативной памяти… Я думаю, что замена его распределенной файловой системой — хорошая идея, может быть

2. Добро пожаловать. Да linecache , в основном зависит от оперативной памяти. Я использовал его в проекте под названием jsonpyes . Первое, что нужно для обработки больших данных, linecache это убедиться, что ваши данные будут разделены на фрагменты или разрезаны на части. Так что для этого потребуется хорошее использование компьютерного оборудования. Ну, это зависит от ваших требований.