Оптимизировать использование Ramdisk для разработки Eclipse

Мы разрабатываем приложения Java/SpringSource с Eclipse на 32-битных компьютерах Vista с 4 ГБ ОЗУ. Операционная система выделяет примерно 3,3 ГБ оперативной памяти из-за резервирования оборудования и т. Д. В виртуальном адресном пространстве. Я столкнулся с несколькими драйверами Ramdisk, которые могут создавать виртуальный диск из оперативной памяти, скрытой от операционной системы, и ищу предложения о том, как наилучшим образом использовать виртуальный диск 740 МБ для ускорения разработки в нашей среде.

Самая медленная часть разработки для нас - это компиляция, а также запуск SpringSource dm Server.

Один из вариантов - настроить Vista для замены на Ramdisk. Это работает и заметно ускоряет разработку в ситуациях с нехваткой памяти. Тем не менее, 3,3 ГБ, доступного для ОС, часто достаточно, и во многих ситуациях мы не используем файлы подкачки.

Другой вариант - использовать Ramdisk в качестве места для временных файлов. Используя команду Vista mklink, я создал жесткую ссылку, из которой рабочая область SpringSource dm Server обычно находится на Ramdisk. Это значительно улучшает время запуска сервера, но никак не влияет на время компиляции. При полной загрузке рабочего каталога на Ramdisk все еще остается около 500 МБ, так что места для гораздо большего.

Какие другие файлы / каталоги могут быть кандидатами для размещения на Ramdisk? Файлы, связанные с Eclipse? (Части) JDK?

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

4 ответа

Решение

Вот что я сделал

Переехал в Рамдиск:

  • JDK (удалил некоторые ненужные файлы, например, демки, src.zip)
  • Каталог плагинов Eclipse
  • SpringSource рабочий каталог
  • Каталоги библиотеки SpringSource

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

  1. Скопируйте папку на рамдиск
  2. Переименуйте исходную папку (я добавил -COPY в конец)
  3. Используйте команду mklink /J, чтобы создать ссылку из того места на диске, где был каталог, до того, как вы его переименовали, туда, где вы скопировали его на Ramdisk.

Например:

cd C:\Dev\Apps
Xcopy jdk R:\jdk\ /s
ren jdk jdk-COPY
mklink /J jdk R:\jdk

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

На компьютерах, предшествующих Vista, вы можете заменить соединение из SysInternals на mklink.

Вы можете попытаться переместить ваше рабочее пространство Eclipse на оперативный диск. Я почти уверен, что ни javac, ни компилятор Eclipse не используют временные файлы, поэтому он идет прямо из файлов *.java в файлы *.class и копирует файлы ресурсов из исходного местоположения в целевую папку.

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

Я использую программное обеспечение SoftPerfect RAM Disk. Я установил JDK, Eclipse, Maven, Gradle и Ant. Кроме того, мое рабочее пространство, мои git-репозитории для разработки и локальный репозиторий Maven (все загруженные зависимости) находятся на диске RAM. Я также создал каталог "user home" на диске RAM и изменил файл eclipse.ini, чтобы он указывал на этот новый каталог "user home". Производительность значительно улучшилась, и теперь Eclipse запускается менее чем за 10 секунд. Я задокументировал свой подход здесь:

http://www.whizu.org/articles/how-to-install-eclipse-on-a-ramdrive.whizu

Я не думаю, что перемещение JDK и папки плагинов на виртуальный диск является хорошим решением для этого случая, так как в большинстве случаев эти операции ввода-вывода не являются узким местом для затмения. Я попытался использовать ваше решение и обнаружил, что папку workspace.metadata необходимо переместить на виртуальный диск, что может помочь в скорости сборки и выполнения. И, если возможно, вам следует переместить всю папку рабочей области под виртуальный диск и использовать некоторый контроль версий, чтобы обеспечить безопасность данных. Удачи.

Другие вопросы по тегам