Friday Feb 27, 2009

NetBeans をより快適に使うには - NetBeans "エルゴノミクス" IDE のまとめ

ということで 6.7 の新機能 "エルゴノミクス" についていくつか調べてみました。
この機能は次の NetBeans に入るわけですが、現在の NetBeans 6.5 などでもそれを快適に使うためのヒントがありますよね。以下の4つ、書いてみました。

自分に適切な構成を選びましょう

ダウンロードページでインストーラを選ぶ時には自分の必要なものを選んでインストールしましょう。NetBeans のダウンロードページには7つのインストーラが用意されています。Java SE, JavaFX, Java, Ruby, C/C++, PHP そして「すべて」です。

NetBeans

「すべて」入りの NetBeans はなんでもできますがそのぶん多くのリソースを必要とします。Ruby や Rails だけやりたいのであれば Ruby を、PHP だけなら PHP を選んでインストールすることをおすすめします。追加の機能が必要になったときにまたインストールすればいいですね。

「すべて」入りのインストーラをダウンロードしてもすべてインストールする必要はありません。「カスタマイズ」ボタンを押して必要なモジュールのみ入れることができます。
NetBeans
モジュールの追加方法は以前以下に書きました。簡単に追加できますので最初は欲張らないで小さい構成からはじめましょうね \^\^;)

それでもいらない機能は無効にしておきましょう

SOA をやるには「すべて」のインストーラを選ばないといけませんが、必要ないと思った機能はどんどん無効にしていってみましょう。必要になったときに有効にしればよいです。モジュールの有効/無効は「ツール」>「プラグイン」から設定できます。
NetBeans
個々のモジュールを無効にするには右上の「無効化」ボタンを押します。

NetBeans

カテゴリごと、例えば Ruby 関連のモジュールを無効にしたい場合は右クリックでメニューを開きカテゴリ丸ごとを無効にできます。

NetBeans

バージョン管理については「NetBeans "エルゴノミクス" IDE (2) : 大きくなった IDE の問題点」でも書きましたが、CVS, Mercurial, Subversion とローカル履歴とすべてのバージョン管理を同時に使う人もそういないのではないでしょうか。使うもののみ有効にしておくのがよいと思います。

NetBeans
また一番よく使うエディタについても機能も見直してみるとよいでしょう。オプションダイアログの「エディタ」で「一般」や「ヒント」などを見て必要なもの以外は外しておくというのもひとつの方法です。
NetBeans

速いディスクを使うこと

NetBeans "エルゴノミクス" IDE (3) : 実際に比べてみた」に書いたように NetBeans は非常にたくさんのファイルにアクセスします。これは NetBeans をインストールした場所もそうですし、キャッシュを使うためユーザーディレクトリへのアクセスも重要です。このユーザーディレクトリは通常はホームディレクトリ以下に作られるので、ここが遅いのは致命的です。ホームディレクトリが共有ディスクなどリモートに置かれている場合はローカルの ディスクに切りかえて使ってもよいでしょう。一時的にユーザーディレクトリを切り替えるには --userdir オプションを使えます。
$ netbeans --userdir /tmp/my_netbeans_userdir

私のマシンは爆速だから平気!というわけではありません

メモリ、パフォーマンスやバグ以外に肥大化した IDE の悪影響については「ユーザーインタフェースの煩雑化」があります。エルゴノミクスのページにも「UI clutter」として書かれています。メニュー項目も多くなり、それらのオプションの数も増え、使いたい機能がぱっと見つからないというのも問題ですね。必要な機能を選んで NetBeans を構成してみてください。すごく快適になると思いますよ!

Thursday Feb 26, 2009

NetBeans "エルゴノミクス" IDE (4) : エルゴノミクス機能を無効にするには

エルゴノミクス機能をオフにするには wiki にも書かれていますが、インストーラで「カスタマイズ」ボタンを押し「Ergonomics」のチェックを外すか、
NetBeans Installer
インストール後や、zip 形式のものを使っている場合は <NetBeansインストールディレクトリ>/etc/netbeans.clusters ファイルの ergonomics1 の行をコメントアウトします。

参考:

NetBeans 6.7 M2 日本語版もリリースしました

NetBeans 6.7 のマイルストーンビルド2(M2)が公開されました。詳しくは大野さんのアナウンスをご覧下さい。 NetBeans 6.7 での M1, M2 までの新機能、変更点は以下を参照してください。Maven の統合、エルゴノミクスが大きな変更点でしょうか。VisualWeb JSF は標準では入っていません。 今回も日本語のビルドも用意しています。以下のページからダウンロードしてください。 またいつものように Mac OS X 用にニーモニック表示を消したメッセージファイルを用意しています。手順にしたがってインストールして ください。 問題や質問、また日本語訳の不具合等ありましたら NetBeans の日本語のメーリングリスト、mixi の NetBeans コミュニティ、twitter、またここのブログでも構いませんのでお知らせください。

NetBeans "エルゴノミクス" IDE (3) : 実際に比べてみた

ではフル機能の IDE と Java SE IDE でどれだけ違うのか、実際に試してみる事にします。Ergonomics のページにもいつくかデータが載っているのでそちらも参考にしてください。ここでは NetBeans 6.5 を使って一つの Java SE プロジェクトを開いた状態で起動してみました。

インストーラ
読み込まれた
クラスの数
(\*1)
必要とする
モジュール数
(\*2)
open()された
jar ファイル
(\*3)(\*4)
使用メモリ
(\*5)
フル機能 IDE
8,011 699
9,314
(1,962)
61,000KB
Java SE IDE
7,675 301
3,379
(784)
41,000KB

(\*1) IDE のログファイルから "Classes: loaded=" の数
(\*2) IDE のログファイルから初期化されるモジュールの数(コア以外)
(\*3) dtruss を使い NetBeans のモジュールが open() される回数
(\*4) () 内は2回目の起動
(\*5) jconsole で計測, おおよその値。MacBook, Intel Core 2 Duo 2.2 GHz, 4 GB, JDK 1.5.0_16-133


NetBeans に含まれるモジュールを対象にしています。これからみるとはやりモジュールの数や、実際にファイルを open() する数は Java SE のほうが少ない事がわかりますね。使用メモリもずいぶん少ないです。

(\*4) は同じ環境でユーザーディレクトリのキャッシュを消さずにもう一度実行した時の値です。モジュールの jar ファイルに対しての open() の回数はかなり少なくなっています。これは1度使った jar はユーザーディレクトリにキャッシュされているからですね。

参考:

Wednesday Feb 25, 2009

NetBeans "エルゴノミクス" IDE (2) : 大きくなった IDE の問題点

エルゴノミクス機能をもう少し詳しく見ていきます。wiki では以下のページがまとまったページになっていますね。ここからいくつかポイントをあげてみます。

なぜ「エルゴノミクス」が必要なのか

現在の NetBeans は機能拡張がすすみ結果として大きな IDE になってしまいましたね。NetBeans 6.0 でそれまで "アドオン" として提供していた以下のパックと呼ばれるもモジュールを IDE 本体に追加しました。また Sun Studio Creator や Sun Studio Enterprise の有償ツールの機能も統合してきました。
  • CND (C/C++)
  • Profiler
  • VisualWeb
  • UML
  • SOA
また、もともと Java 用の IDE だったわけですが、6.0 からは Ruby や Rails のサポートが加わりました。また 6.5 では PHP などのサポートが追加されましたね。
  • Ruby/Rails
  • Groovy/Grails
  • PHP
  • JavaScript
バージョン管理機能1つ見てみても、ローカル履歴を含めてインストールした状態で4つも持っていることになります。
  • Mercurial
  • Subversion
  • CVS
  • ローカル履歴
このように高機能で万能になった反面、ひとりの人が使うにはあまりにも大き過ぎる IDE になったとも言えますね。

大きな IDE の問題点

IDE 自体の機能が増えてサイズが大きくなるとどのような問題が起きるのでしょうか。ここでは「使っていない機能がもたらす悪影響」について書かれています。ここでは「フル機能 IDE」=ダウンロードページで「すべて」を選んでダウンロードした全機能入りの IDE、「Java SE IDE」=Java SE を選んでダウンロードした Java SE 機能のみ入った IDE、としています。
  • 起動時間
    フル機能 IDE と Java SE IDE を比べた場合はフル機能 IDE が 30% も起動時間が遅いのだそうです。また Java SE プロジェクトを開いた状態で起動させた場合にもフル機能 IDE のほうがプロジェクトが開いてない場合とくらべてより遅くなるみたいですね。
  • 読み込む必要のあるクラス
    機能が増えれば当然読み込む必要のあるクラスが増えてしまいます。これらがすべて使う機能に関係するクラスであればよいのですが、ほとんどは1度も使うことのないクラスだったりします。Java SE プロジェクトを開いていた場合、Java SE IDE よりフル機能 IDE のほうが 1000 以上のクラスを余分に開いているそうです。
  • バグ
    さまざまなプロバイダ/フック/リスナーがいろいろな場所に存在しそれがバグを引き起こす可能性があります。一般的な問題はメモリリークです。また特定の操作のパフォーマンスが低下したことも実際にあったようですね。
  • ナビゲーション
    多くの機能があればメニューも多くなりますね。通常のメニューやコンテキストメニューには多くの機能が追加されていることになります。また選択を変更した場合(タブの切り替えや、エクスプローラでのファイル選択の移動など)、登録してあるリスナーが多ければ多いほど多くの処理をしないといけないことになりますね。

その解決策

このページにはとても興味深いことが書いてあります、「ほとんどのユーザーは『すべて』を選んでダウンロードする」んだそうです。その「フル機能 IDE」をより速く、より小さく動かすように今回の「エルゴノミクス」機能の導入になったわけですね。

Tuesday Feb 17, 2009

NetBeans "エルゴノミクス" IDE

NetBeans の trunk ビルドには Ergonomics という機能がはいっています。これっていったいなんのことでしょう? まずはどんなふうに動いているのか現時点での 開発ビルドを使ってみましょう。

起動してみる

「すべて」のインストーラでインストールした IDE です。起動するといつもに比べてメニューやツールバーのボタンの数が少ないですね。

NetBeans

どのようなモジュールが有効になっているのか、「プラグイン」で確認してみます。「プラットフォーム」や「ベース IDE」というコアな部分のモジュールのみ有効になっていることがわかります。Java をサポートするモジュールはこの時点では無効になっています。

NetBeans

プロジェクトを作成してみる

ファイルメニューから新しくプロジェクトを作ってみます。ダイアログにはすべてのカテゴリとプロジェクトのタイプが表示されます。無効になっている Java カテゴリのプロジェクトもここでは表示されます。

NetBeans

Java アプリケーションを選ぶと次の画面では Java サポートを有効にするかどうか聞いてきます。ここで「有効化」ボタンを押すと、

NetBeans

この時点で初めて Java のモジュールが読み込まれ使えるようになります。

NetBeans

Java のサポートを有効にするとだいたいいつも見ている IDE と同じになりますね。メニューも大幅に増えていつもの IDE になります。

NetBeans

プロジェクトを読み込んでみる

プロジェクトを新規に作成する場合ではなく既存のプロジェクトを読み込んでみます。プロジェクトを開く時にはどのプロジェクト かはまだわかりませんが NetBeans で開けるかどうかはアイコンで判断できます。

NetBeans

PHP のプロジェクトを開いてみます。この時は確認ダイアログは出ませんが、PHP サポートが自動的に有効化されます。

NetBeans

このようにして「使う機能を必要になった時に初めて有効化」して使うというのが Ergonomics です。

現段階では Ergonomics は Java と全部入りの NetBeans で有効になっています。Ruby, C/C++, Ruby, PHP などの単体のインストーラでインストールした場合にはこの機能は入っていません。また基本的にはモジュールは「インストール済みで無効」になっている状態ですが、インストールされていないものもあるようですね。たとえば以下のように VisualWeb のモジュールはインストールされていません。必要になったときにダウンロードされる仕組みになっているようです。

NetBeans
About

NetBeans Globalization

Search

Archives
« April 2014
SunMonTueWedThuFriSat
  
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
   
       
Today