Найти в Дзене

Зачем чистить %TEMP% папку?

Казалось бы, все так рекомендуют проводить эту процедуру каждую неделю или даже даже каждый день. Сегодня я бы хотел поговорить вообще про все виды временных файлов, в том числе кэш и буфферы. Определения, гласит о том что, временный файл - это файл, создаваемый определённой программой или операционной системой для сохранения промежуточных результатов в процессе функционирования или передачи данных в другую программу. Обычно такие файлы удаляются автоматически создавшим их процессом. (Википедия) В мире, так сложилось, что люди придумывают вещи, для того что бы эти вещи решали какие то проблемы. Велосипед, что бы быстрее преодолевать дистанции. Радио, для того что бы можно было быстро передавать информацию на дистанции. Фотоаппарат, лодки, самолёты и т.д. У каждого механизма, есть свой подмеханизм, который решает другие проблемы, например как звезда и цепь на велосипеде, для того что бы было проще крутить педали. Так и тут, временные файлы нужны для того, что бы решать свои определё
Оглавление

Казалось бы, все так рекомендуют проводить эту процедуру каждую неделю или даже даже каждый день.

Сегодня я бы хотел поговорить вообще про все виды временных файлов, в том числе кэш и буфферы.

Определения, гласит о том что, временный файл - это файл, создаваемый определённой программой или операционной системой для сохранения промежуточных результатов в процессе функционирования или передачи данных в другую программу. Обычно такие файлы удаляются автоматически создавшим их процессом. (Википедия)

В мире, так сложилось, что люди придумывают вещи, для того что бы эти вещи решали какие то проблемы. Велосипед, что бы быстрее преодолевать дистанции. Радио, для того что бы можно было быстро передавать информацию на дистанции. Фотоаппарат, лодки, самолёты и т.д. У каждого механизма, есть свой подмеханизм, который решает другие проблемы, например как звезда и цепь на велосипеде, для того что бы было проще крутить педали. Так и тут, временные файлы нужны для того, что бы решать свои определённые проблемы.
Мы посмотрим как минимум 2 ситуации, при которых нам помогают временные файлы.

Ситуации

Одна из самых частых проблем - это посмотреть результат проще, чем его высчитывать.
Допустим, вы программист, и разные сервисы складывают результаты своих расчётов в одну папку, и эти сервисы делают свои расчёты раз в день и не больше. Вам нужно посчитать сумму числе из каждого файла и выводить эту сумму на своём сайте.
Для этого вы сделали функцию, которая открывает каждый файл, смотрит его содержимое, сохраняет в памяти, потом складывает значения в сумму и возвращает в виде результата эту самую сумму. Всё просто, казалось бы. Но файлов настолько много, что весь этот процесс занимает 5 секунд. Можно решить эту проблему уже иным способом, распараллеливание, закидыванием железом, но каждый раз когда пользователь будет заходить на сайт, то каждый раз компьютер будет высчитывать эту сумму снова и снова. Но мы же понимаем, что результат будет один и тот же в зависимости от дня. Правильным решением будет создать файл (или перменную), в котором будет сохранятся это число, а функцию обернуть так, что бы она запускалась каждый день и не больше. Тем самым расчёт будет происходить только раз в день, а пользователь будет получать результат уже из готового расчёта. Это простая логика. Конечно запускать отдельный таймер для этого было бы слишком затратно, поэтому люди придумали более простой способ решить эту же проблему другим способом.

Когда мы запускаем в первый раз функцию, функция проверяет на наличие уже готового расчёта, если его нет, то делает расчёт в первый раз. Если расчёт уже есть, то проверяет, это расчёт этого же дня или это расчёт вчерашний? Если расчёт вчерашний, то делает ещё раз расчёт, а если сегодняшний, то результатом будет информацией, которая хранится в том самом файле. Там получилось, что в современных операционных системах в файлах уже хранятся такие данные как дата создания и дата изменения (насколько я знаю что это берётся из мета-данных файловый системы, но сейчас о другом), поэтому хранить в самом файле дату не имеет смысла. В этом и есть смысл понимания "временного" файла, так как файл живёт в зависимости от времени.

Вторая ситуация более простая и этим занимается браузер. Что бы лишний раз не загружать логотип сайта, например, браузер сохраняет изображение, а вместо самого изображение скачивает хэш-сумму файла, что бы сверять со своим. Хэш-сумма, если в кратце, это значение которое получается в результате просчёта данных через определённый алгоритм, это знать не обязательно, просто хэш-сумма имеет более малый вес, чем сам файл. Тем самым сохраняя трафик вашего интернета, количество подключений и нагрузки в целом на сеть. Обычно этим видом временного файла называют кэшом.

Вывод по ситуациям.

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

Временных файлов слишком много.

Временных файлов может быть настолько много, что могут занимать десятки гигабайт памяти. А например ssd имеет другую проблему, чем больше он нагружен файлами - тем медленее он работает. И получается такой парадокс. Мы решили проблему медленного компьютера замедляя компьютер. Как из вариантов, можно было бы вынести %temp% папку куда нибудь на другой диск, но тогда и чтение этих файлов будет медленнее. В общем у этой проблемы может быть отдельное решение, но одно из них это иногда чистить эти временные файлы. В операционных системах уже придумали эти механизмы для чистки. В планировке задач Windows можно настроить его так, что бы очистка была сама раз в какое то время, но обычно Windows сама понимает, когда ей пора.

Так чистить или нет? Или tl;dr.

Однозначно нет. В современном мире, проблема временных файлов уже давно не стоит так жёстко как раньше, лишь только потому что гигабайты очёнь дешёвые, в отличии от прошлого. Дайте системе делать всё за вас и чистка %TEMP% не даст вам сильного прироста, а наоборот спровоцирует систему делать лишние расчёты.

Спасибо за то, что прочли.