Как ускорить проект Eclipse «Обновить»
-
05-07-2019 - |
Вопрос
У меня довольно большая кодовая база PHP (10 тыс. файлов), с которой я работаю с использованием Eclipse 3.4 / PDT 2 на компьютере с Windows, в то время как файлы размещаются на файловом сервере Debian. Я подключаюсь через подключенный диск в Windows.
Несмотря на наличие 1-гигабитного Ethernet-соединения, обновление проекта eclipse выполняется довольно медленно. До 5 минут. И мне мешают работать, пока это происходит.
Обычно это не было бы такой проблемой, поскольку теоретически Eclipse не должно было бы выполнять полное обновление очень часто. Однако я также использую плагин subclipse, который запускает полное обновление при каждом переключении / обновлении.
Я догадываюсь, что самой медленной частью процесса является затмение, проверяющее файлы 10k один за другим на предмет изменений в samba.
В базе кода содержится большое количество файлов, к которым мне никогда не понадобится доступ из затмения, поэтому мне вообще не нужно их проверять. Однако я не могу понять, как предотвратить это. Я пытался пометить их как «производные». Это предотвращает их включение в процесс сборки и т. Д. Но, похоже, это совсем не ускоряет процесс обновления. Похоже, что Eclipse все еще проверяет их измененный статус.
Я также удалил ненужные папки из 'пути сборки' PDT. Это ускоряет процесс «создание рабочего пространства», но опять-таки не ускоряет фактическое обновление, предшествующее созданию (и которое занимает больше всего времени).
Решение
Спасибо всем за ваши предложения. По сути, JW был на правильном пути. Работать локально.
С этой целью я обнаружил плагин под названием FileSync: http://andrei.gmxhome.de/filesync/
Это автоматически копирует измененные файлы в общий сетевой ресурс. Работает фантастически. Теперь я могу сделать полное обновление / переключение / обновление из Eclipse за пару секунд.
Другие советы
Нужно ли хранить файлы в общей папке? Возможно, вы можете настроить какое-то автоматическое зеркалирование, чтобы вы работали с файлами локально, и они автоматически копировались в общий ресурс. Я нахожусь в подобной ситуации, и я не хотел бы отказываться от скорости редактирования файлов на моем собственном компьютере.
Учитывая его подрывную деятельность, почему бы не иметь файлы локально и использовать ловушку post commit для обновления до последней версии на сервере dev после каждой фиксации? (или укажите конкретную строку в журнале фиксации (например, «## DEPLOY ##»), когда вы хотите обновить dev, и запускайте обновление только тогда, когда ловушка пост-фиксации увидит эту строку).
Помимо ускорения обновления, преимущество этого метода состоит в том, что вы можете иметь поврежденные файлы, над которыми работаете в eclipse, и с сервером dev все в порядке (хотя и со старой версией кода). р>
Недостатком является то, что вам нужно сделать коммит, чтобы отправить сохраненные файлы на сервер разработки.
Используйте функцию автономных папок в Windows, щелкнув правой кнопкой мыши и выберите "Сделать доступным автономный режим". Это может сэкономить много времени и задержку при передаче в оба конца в протоколе обмена файлами.
Использование svn externals с флаг ревизии для неизменяемого материала может препятствовать обновлению этих файлов при обновлении. С другой стороны, это не может быть. Поскольку вам нужно внести некоторые изменения в структуру вашего хранилища Subversion, чтобы он заработал, я бы посоветовал вам провести простое тестирование, прежде чем делать это по-настоящему.
Я решил эту проблему, изменив " Размер буфера передачи файлов " по адресу:
Window- > Preferences- > Remote Systems-Files и измените значения «Размер буфера передачи файлов» на «Загрузка» (КБ) и «Загрузка» (КБ), я установил его на 1000 КБ, по умолчанию это 40 КБ