24 февраля 2015, 23:47

Идея: RAM-диск (когда нет SSD)

На работе я пользуюсь аймаком, в котором всё хорошо, кроме жесткого диска. Да, там нет ССД, нет Фьюжн-драйва, зато много оперативки и хороший процессор.

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

Поэтому у меня возникла идея: отчего бы не использовать прелести оперативной памяти в виде RAM-диска для проекта, с которым работаешь прямо сейчас?

Сценарий скрипта или софтины прост:

  1. Смотрим, сколько занимает папка проекта.
  2. Делаем рамдиск размером с неё, но с некоторым запасом, например, в 512 Мб. Или округлить в большую сторону до 512 Мб.
  3. Переименовываем оригинальную папку, делаем рядом пустую со старым названием.
  4. Монтируем рамдиск в пустую папку (при этом надо предусмотреть защиту от резервного копирования и поисковой индексации).
  5. Копируем в неё все файлы проекта, включая папку Гита.
  6. Работаем с этой папкой в любимом редакторе, Апач ликует, Гит подыгрывает.
  7. Синхронизация изменений:
    1) в первой версии полная синхронизация по тычку либо после окончания работы с проектом,
    2) во второй версии синхронизируется каждый файл в фоне сразу после его изменения, а-ля дропбокс.
  8. Окончание работы: последняя синхронизация, чтоб ничего совсем не потерять, размонтирование рамдиска (и параллельная очистка памяти), удаление папки рамдиска, переименовывание папки проекта к изначальному названию.

Плюсы-минусы-подводные камни?