Eclipseプロジェクトの「更新」を高速化する方法
-
05-07-2019 - |
質問
WindowsマシンでEclipse 3.4 / PDT 2を使用して作業するかなり大きなPHPコードベース(10kファイル)がありますが、ファイルはDebianファイルサーバーでホストされています。 Windowsのマップされたドライブを介して接続します。
1ギガビットのイーサネット接続があるにもかかわらず、Eclipseプロジェクトの更新を行うのは非常に遅いです。 5分まで。そして、私はこれが起こっている間、仕事からブロックされています。
Eclipseは理論的には完全な更新を頻繁に行う必要がないため、これは通常、それほど問題にはなりません。ただし、切り替え/更新が完了するたびに完全更新をトリガーするsubclipseプラグインも使用します。
プロセスの最も遅い部分は、Eclipseがsambaの変更について1万個のファイルを1つずつチェックすることです。
Eclipseからアクセスする必要のないファイルがコードベースに多数あるため、それらをチェックする必要はまったくありません。しかし、そうするのを防ぐ方法がわかりません。それらを「派生」とマークしてみました。これにより、ビルドプロセスなどに含まれなくなります。しかし、リフレッシュプロセスの速度はまったく向上しないようです。 Eclipseはまだ変更されたステータスをチェックしているようです。
また、PDTの「ビルドパス」から不要なフォルダーを削除しました。これは「ワークスペースの構築」プロセスを高速化しますが、やはり、構築に先行する実際の更新(および最も時間がかかるもの)は高速化しません。
解決
ご提案いただきありがとうございます。基本的に、JWは正しい軌道に乗っていました。ローカルで作業します。
そのために、FileSyncというプラグインを見つけました。 http://andrei.gmxhome.de/filesync/
これにより、変更されたファイルがネットワーク共有に自動的にコピーされます。素晴らしく動作します。これで、Eclipse内から数秒で完全な更新/切り替え/更新を行うことができます。
他のヒント
ファイルを共有に保存する必要がありますか?何らかの自動ミラーリングをセットアップして、ファイルをローカルで操作すると、共有に自動的にコピーされる場合があります。私も同じような状況にあり、自分のマシンでファイルを編集する速度をあきらめたくありません。
サブバージョンが指定されている場合、ファイルをローカルに保持して、コミット後のフックを使用して、コミットのたびに開発サーバーの最新バージョンに更新しますか? (または、devを更新するときにコミットログに特定の文字列(例: '## DEPLOY ##')があり、コミット後のフックがこの文字列を認識したときにのみ更新を実行します。)
更新の高速化とは別に、この手法の利点は、Eclipseで作業している壊れたファイルを保持でき、開発サーバーが(コードの古いバージョンであるにもかかわらず)大丈夫ということです。
デメリットは、保存したファイルをdevサーバーにプッシュするためにコミットする必要があることです。
右クリックして「オフラインで使用可能にする」を選択して、Windowsのオフラインフォルダー機能を使用します。ファイル共有プロトコルの時間と往復遅延を大幅に節約できます。
svn externals の使用変化しないもののリビジョンフラグは might で、サブクリップが更新時にこれらのファイルを更新しないようにします。その後、再びそうでないかもしれません。 Subversionリポジトリを機能させるには構造を変更する必要があるため、実際に実行する前に簡単なテストを行うことをお勧めします。
「ファイル転送バッファサイズ」を変更することでこの問題を解決しました。で:
ウィンドウ->設定->リモートシステム-ファイル [ファイル転送バッファサイズ]の[ダウンロード(KB)およびアップロード(KB)の値を高い値に変更し、1000 kbに設定します。デフォルトでは40 kbです