Вход
Быстрая регистрация
Если вы у нас впервые: О проекте FAQ
0

Как дефрагментировать внутреннюю память смартфона на Андроид?

Сыррожа [118K] 2 недели назад

Есть способы удаления мусора во внутренней памяти, но память при этом сильно фрагментируется. Как с этим бороться?

2

Если кратко - никак, ибо ненужно.

Для начала задумайтесь над тем, что такое дефрагментация, и почему ее нужно делать на компьютере с обычным (не SSD) жестким диском.

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

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

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

На андроиде есть также подобная утилита, называется "Trimmer (fstrim)", собственно там подобных утилит много, можно выбирать любую, только для ее работы необходим root

автор вопроса выбрал этот ответ лучшим
Сыррожа [118K]
Не понял зачем нужен принудительный trim? Разве при перезаписи освобожденного кластера старое содержимое в нем не затирается новым фрагментом?  2 недели назад
Kevinus [11.2K]
В том то и дело, что "запись" происходит в два этапа, сначала ячейка сбрасывается в дефолтное состояние, затем записываются данные.
Если оно уже будет сброшено, то остается только одна процедура - запись, поскольку она уже сброшена.
 2 недели назад
комментировать
Знаете ответ?
Есть интересный вопрос? Задайте его нашему сообществу, у нас наверняка найдется ответ!
Делитесь опытом и знаниями, зарабатывайте награды и репутацию, заводите новых интересных друзей!
Задавайте интересные вопросы, давайте качественные ответы и зарабатывайте деньги. Подробнее..
регистрация