В настоящее время для хранения данных в вычислительных устройствах чаще всего используются магнитные жесткие диски (HDD) и флеш-память (SSD).
Работу жестких дисков замедляет фрагментация. Когда вы удаляете файл, файловая система помечает место, которое он занимал на диске, свободным и позволяет записать туда другой файл, целиком или частично. Этот процесс повторяется с другими файлами, и через какое-то время диск становится сильно фрагментирован — одна часть файла находится по одному адресу, другая — по другому и так далее. Чем сильнее фрагментация, тем ниже скорость считывания и записи данных, и тем медленнее работает компьютер. Повысить скорость жесткого диска можно дефрагментацией или более радикальным способом — форматированием.
В SDD операции с файлами производятся по-другому. При удалении файла файловая система помечает место, которое он занимал на диске, неиспользованным. Данные оттуда не удаляются, а информация о них записывается в карту диска. Через некоторое время карта диска разрастается до огромного размера, и поиск по ней производится намного медленнее. C технической точки зрения это не фрагментация, а «I/O lag» — задержка ввода/вывода. Чем значительнее эта задержка, там ниже скорость считывания и записи данных, и тем медленнее работает устройство.
Фрагментировать твердотельные накопители и флеш-память ни в коем случае нельзя, это сильно сокращает срок их жизни. Для уменьшения I/O lag операционные системы используют команду TRIM.
В SSD ячейки памяти объединены в страницы, а страницы в блоки. Копирование данных может производиться только в чистые блоки, поэтому перед процессом записи запускается цикл «чтение-очистка-модификация», что со временем сильно замедляет скорость работы накопителя. Использование TRIM позволяет предотвратить попытки считывания данных из блоков, не содержащих данные.
TRIM сканирует файловые записи и сообщает контроллеру, к каким блокам не нужно обращаться. После этого контроллер оперирует данными только с тех участков памяти, на которые записана информация, пропуская неиспользуемые. В результате скорость работы накопителя остается высокой даже при многократном удалении и копировании файлов. Следует учитывать, что TRIM полностью стирает данные в неиспользуемых ячейках без возможности ее восстановления
Иллюстрация: outsidethebox.ms
Команда TRIM поддерживается в Windows 7 и Windows 8, а также Linux 2.6.33 и OS X 10.6.8 и выше. Поддержка TRIM также появляется на смартфонах и планшетах на базе Android после обновления 4.3 — команда уже настроена, оптимизирована и включается автоматически. У пользователей устройств на более ранних версиях Android есть только есть один способ повысить упавшую производительность системы — периодически делать сброс к заводским настройкам.