NetBeans のプロジェクトスキャンに関して、英語のメーリングリストでは多くの質問や意見が寄せられています。Petr がそれに返事をするために、ブログにまとめています。 スキャンの問題に限らず、バグレポートする場合にも役立つと思いますので以下に訳してみました。

おそらくほとんどの人が「プロジェクトをスキャンしています...」というメッセージを見たことがあると思います。大きなプロジェクトを開くと、ソースのスキャンが始まり、それが終わるまで NetBeans の機能を使えないことがありますね。

スキャンに関する現状:
  • スキャンは実行する必要があります
    これを実行しないとソースコードの情報を必要とする機能 (コード補完、リファクタリング、移動など)が使えません。
  • 最初のスキャンは時間がかかります
    スキャンの結果はユーザーディレクトリ ($HOME/.netbeans/$VERSION) に保存され、それ以降は変更のあった箇所だけ再スキャンされます。
  • エディタのインフラはまだ導入されたばかりです
    パース API は 6.5 では Java 言語に対してのみ導入され、6.7 では他の言語でも使われるようになりました。そのためまだ最適化できていない部分があります。例えば、より効率のよい順序でスキャンするとか、スキャン中にも機能を使えるようにするなどです。スキャン自体は問題ありませんが、問題はスキャン中に IDE が使えなくなることです。
  • スキャンとインデックス化の問題は NetBeans にとって直さないといけない重要な問題であり、開発チームも認識しています。
スキャンとインデックス化の問題を報告するには:

スキャン中に IDE がフリーズしたり、スキャンが非常に長い時間止まらなかったらはそれはバグと考えられます。問題を修正する唯一の方法はまずバグレポートすることです。そして多くの人にそのバグを見てもらうことです。以下にスキャンの問題をバグ登録する場合に重要なポイントをあげておきます。
  1. 以下のコマンド行オプションを付けてログレベルを上げ、ログを取ってください。
    -J-Dorg.netbeans.modules.parsing.impl.indexing.RepositoryUpdater.level=FINE
  2. NetBeans のバージョンはもちろん、Java と OS のバージョンも付け足してください。(ヘルプ > 製品について で得られる情報をコピーしてください) またログファイルを添付してください。($HOME/.netbeans/$VERSION/var/log/messages.log にあります)
  3. 問題を出来るだけ正確に書いてください。ただし、長々と書くのではなく簡潔にかいてくださいね。また以下情報を付け足してください。
    • スキャンは終了しましたか?
    • どれくらい時間がかかりましたか?
    • 最初のスキャンですか?それともプロジェクトを開くたびに毎回起きますか?
    • スキャンが終わらなかった場合、IDE はフリーズしてしまいましたか?
    • その場合メインウィンドウは再描画しましたか? (UI がフリーズしましたか?)
  4. プロジェクトの情報を提供してください。必要な情報が十分にないとバグを再現できません。
    • プロジェクトの種類は?
    • プロジェクトの規模は?(クラス数や、ディスクサイズなど)
    • いくつかのライブラリを使っていますか?どれくらい使っていますか?
    • プロジェクトの構造は?
    • 公開しているプロジェクトですか? ソースを見ることはできますか?
  5. 特定の設定によってはパフォーマンスの問題が発生することがよくあります。まずその外部要因の可能性を見極める必要があります。
    • バージョン管理システムは使っていますか?
    • プロジェクトはネットワークドライブに置かれていますか?
  6. パフォーマンスの問題をバグ登録する場合には、スレッドダンププロファイラのスナップショットを取得してください。

まずは「正確なバグレポートが必要」ということですね。この問題に限らず NetBeans ではバグを登録しないと直ってきません。おかしいなと思ったらまずバグ登録してください。面倒なら日本語メーリングリストにすぐに知らせてください。
Comments:

Post a Comment:
Comments are closed for this entry.

This blog copyright 2009 by katakai