Подтвердить что ты не робот

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

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

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

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

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

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

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

4b9b3361

Ответ 1

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

Перемещено в Ramdisk:

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

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

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

Например:

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

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

На компьютерах с предварительной версией вы можете заменить соединение из SysInternals для mklink.

Ответ 2

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

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

Ответ 3

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

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

Ответ 4

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