BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース Javaの実行をたどる5つ以上の方法

Javaの実行をたどる5つ以上の方法

ブックマーク
Zviki Cohen氏(ブログ・英語)は自身の経験に基づき、自分で記述していないコードを理解、探求しながらJavaの実行を辿る5つの方法を書いた(source)。単にソースコードを読むのは(時として逆コンパイルの場合もある)大変地道でしかもエラーを招きやすい。代わりに彼は誰か他の人のコードを学ぶという不都合を排除する、Javaが実行中にJavaコードを観察する5つの方法を勧めている。下記は彼の5つの提案を要約したものである。
  1. 基礎:ブレイクポイントとステップバイステップ実行 "一番シンプルな方法で始める。ブレイクポイントを設定し実行を辿り始める。それは次のような場合にベストである。すばやくシンプルなソリューションが必要で、どこで止まらせたらいいか分かっているコードを持っている時。与えられた点において(オーギュメ ント、ローカル変数等)入念な情報が必要となる。"
  2. 最初に:デバッグメッセージ ”デバッグメッセージを設定して続ける。一番シンプルな方法はメッセージをコンソールにプリントアウトするのにSystem.out.println ステートメントを使用することである。これは次のような場合にベストである。コードを所有していて何を探しているか把握している時。イベントハンドラにはとても適したソリューションである。その高パフォーマンスがコンプレックスフローの実行時全体を通して、どのイベントがリリースされるかを理解するのを実際的なものにする。
  3. ホットスポット:動的プロキシ ”シンプルなデバッグメッセージにおける向上。デベロッパたちがプロキシクラスを導入するのを可能にするJavaの特別な機能である。これは、与えられたクラスの前に適用し、与えられたインタフェースからの全ての呼び出しを監視することができる。これは次のような場合にベスト である。イベントハンドラにとっては素晴らしいソリューションである。ダミーのイベントハンドラを数秒内にジェネリックプロキシと一緒に設定することができ、イベントのシーケンスを見ることができる。イベントハンドラを理解するのにはこれが一番シンプルで速いメソッドである。"
  4. Brute Force:ランタイムプロファイラ”プロファイラは特別なJMVフックを通してシステム内の全ての呼び出しを辿る非常に強力なツールである。でもそれは0.5インチの釘に10ポンドのハンマーを使うようなものなのである。これは次のような場合にベストである。非常に具体的なオペレーション(例:大変短い実行フロー)用の完全な画が欲しい時である。
  5. New Age:アスペクト ”アスペクト指向のプログラミング(AOP)は重要な概念である。アスペクトの概念まで掘り下げずに、結論だけに注目している。これはあなたのコードの実行を妨害するのに大変手っ取り早い方法である。オリジナルのコードを修正する必要なしにメソッド、コンストラクタ、フィールドアクセス等の周りにフックを選択的に設定することができる。このフック内でデバッグメッセージをプリントすることができる。ベストな使用目的は、再構築できるコードの実行を辿りたい時である。

2007年の2月までZviki Cohen氏はAmdocs(サイト・英語)のアーキテクトとシニアコンサルタントであったが、現在はソフトウェア業界のフリーランスである。

原文はこちらです:http://www.infoq.com/news/2007/12/5ways

この記事に星をつける

おすすめ度
スタイル

BT