Javaのデッドロックや競合状態に困っている人の強い味方?
マルチスレッドアプリのコードを動的に解析するツール、米コベリティ
2008/05/12
C/C++やJavaのコード解析システムベンダである米コベリティは5月12日、Javaマルチスレッドアプリケーション向けの動的解析ツール「Coverity Thread Analyzer for Java」の日本国内販売を開始した。
「Coverity Thread Analyzer for Java」はマルチスレッドJavaアプリケーション開発における、デッドロックや競合状態といった再現が難しい問題のために作られたツールだ。同社のコード解析技術を生かして、並列処理のバグとなるコードをすばやく検出し、データ破壊とシステム障害を回避できる。Eclipseプラグイン版もあり、マルチスレッドを実行しながらその状況も監視できるという。
Eclipseプラグインとして実行された「Coverity Thread Analyzer for Java」(写真中央部の「Detects」ビューで1つ1つのスレッドの実行状況を監視できる)従来、マルチスレッド処理におけるデッドロックや競合状態といった問題は、コードの該当部分を検出するのが難しく、問題部分の特定に数週間を費やすこともあった。なぜなら、マルチスレッドにおける並列処理のバグは、現象を再現するためのパターンが何万通りもあり、しかも断続的に現象が起きるため、テストに膨大な時間がかかるからだ。
また近年、マルチコアのプロセッサをソフトウェアでサポートする需要が増大しているのが、新たな課題となっているという。米コベリティ CTO ベン・シェルフ氏は次のように指摘する。「コードとテストの複雑さが増しても納期というのは延ばすことができず、さらに、多くの開発者はマルチスレッド開発での本格的なトレーニングが不十分だ。このため、シングルスレッド環境からマルチスレッド環境への移行時には多くの技術的問題が発生している」
米コベリティ CTO ベン・シェルフ氏「Coverity Thread Analyzer for Java」を使えば、「これまで発生した」競合状態およびデッドロックだけではなく、「これから発生するかもしれない」問題を検出でき、マルチスレッドアプリケーション開発において発生する多くの問題がリリース前のQAテスト時に解決できる。
さらに、コードのバグや脆弱性を静的に解析する同社製品「Coverity Prevent」と連携して使うことによって、製品間での情報共有機能による「複合解析」が可能だ。シェルフ氏は複合解析の利点を次のように述べた。「PreventでThread Analyzerを使用して静的解析の精度を向上させ、Thread AnalyzerでPreventの結果を使用してコードの動的解析の時間を短縮するという相互作用がある」
「Coverity Thread Analyzer for Java」は5月12日から評価版を発表したが、出荷開始は6月20日の予定だ。さらに、C/C++版も今後のリリースに向けて現在開発中という。
関連リンク
関連記事
情報をお寄せください:
TechTargetジャパン
- Scalaのパッケージ、アクセス修飾子、オブジェクト継承 (2012/5/22)
インポート、パッケージオブジェクト、抽象クラス/抽象メソッド、オーバーライド、final、シールドクラスなども - 基幹系システムでCloud SQLは使えるか試してみた (2012/5/17)
サンプルとしてMRPシステムを作成して動かし、「再帰呼び出し」などのパフォーマンスを測定して検証してみます - アジャイル管理ツール9選+Pivotal Tracker入門 (2012/5/14)
群雄割拠のアジャイルプロジェクト管理ツールを9つ紹介し、特に注目を集めているPivotal Trackerの基本的な使い方を解説します - サーバサイドJSやJavaでWebアプリが作れるXPages (2012/5/11)
Notes/Dominoの資産をサーバサイドJavaScriptやJavaで操作し、HTMLやJavaScript、CSSをUIにできる技術を紹介
キャリアアップ
スポンサーからのお知らせ
- - PR -
イベントカレンダー
- - PR -
