netail.net
自作フリーソフトや,ゲームに関する雑記を公開してます.
日記はソフトウェア工学の論文ネタが中心です.
最近のお知らせ (古いものはこちら)
2004-01-13 古い日記からの変換データ [長年日記] ▲
_ 論文 ▲
Katharina Mehner:JaVis: A UML-Based Visualization and Debugging Environment for Concurrent Java Programs.Software Visualization, LNCS 2269, pp.163-175, 2002.
実行トレースから UML のシーケンス図を生成して,その上にデッドロック情報を乗せる.デッドロック検出アルゴリズムは既存だし,シーケンス図を作ること自体は今のところ力技のようなので,新規というわけではないが,あると便利そう,というところ.
シーケンス図を作る,というところで,Visualizing the Execution of Java Programs の筆者らが「スケーラビリティがないので実際には使いにくい」という主張をするのは仕方がないところかも.
_ 論文 ▲
Wim De Pauw, Erik Jensen, Nick Mitchell, Gary Sevitsky,John Vlissides, and Jeaha Yang:Visualizing the Execution of Java Programs.Software Visualization, LNCS 2269, pp.151-162, 2002.
Java のプログラム実行時情報を可視化するJinsight というツールを紹介した論文.
オブジェクトのインスタンス数・呼び出し数・消費メモリ量・実行時間を見る Histogram View,呼び出し・参照関係をツリー状に表現して,枝にその参照が何回ずつ起こっているかを表す Reference Pattern View,オブジェクトを「世代」にグループ化することで行うメモリリーク分析(「捨てられるべき」オブジェクトグループへの参照を誰かがこっそり保持していないか調べる),プロファイラ結果を図示する Execution View,呼び出し回数の比率を示す Call Tree View がある.
Execution View は,全部のメソッド呼び出し関係を図示するようで,かなり見づらいが,150万行程度の実行履歴でもちゃんと表示できているあたりは,かなりがんばっている.
主にメモリおよび実行性能上の問題に対処することが目的らしいので,このあたりで十分なのだろう.なんとなくだが,Eclipse の Java プロファイラツールで使われているビューに似ている気がする.IBM の人たちだし.
関連研究としては,・情報をいかに減らすか(適当な単位で分割するなど)・いかに探すか(クエリーベースの探索ツールなど)があげられる.UML で並列性の問題を可視化するツールなどもあるようだがスケーラビリティの問題が大きい,とも述べている.また,一般的な情報表示よりは,特定のタスクに絞って便利な情報を提供するツールのほうが良い,とも述べている.