Javaのデッドロックや競合状態に困っている人の強い味方?

マルチスレッドアプリのコードを動的に解析するツール、米コベリティ

2008/05/12

 C/C++やJavaのコード解析システムベンダである米コベリティは5月12日、Javaマルチスレッドアプリケーション向けの動的解析ツール「Coverity Thread Analyzer for Java」の日本国内販売を開始した。

 「Coverity Thread Analyzer for Java」はマルチスレッドJavaアプリケーション開発における、デッドロックや競合状態といった再現が難しい問題のために作られたツールだ。同社のコード解析技術を生かして、並列処理のバグとなるコードをすばやく検出し、データ破壊とシステム障害を回避できる。Eclipseプラグイン版もあり、マルチスレッドを実行しながらその状況も監視できるという。

coverity01.jpg Eclipseプラグインとして実行された「Coverity Thread Analyzer for Java」(写真中央部の「Detects」ビューで1つ1つのスレッドの実行状況を監視できる)

 従来、マルチスレッド処理におけるデッドロックや競合状態といった問題は、コードの該当部分を検出するのが難しく、問題部分の特定に数週間を費やすこともあった。なぜなら、マルチスレッドにおける並列処理のバグは、現象を再現するためのパターンが何万通りもあり、しかも断続的に現象が起きるため、テストに膨大な時間がかかるからだ。

 また近年、マルチコアのプロセッサをソフトウェアでサポートする需要が増大しているのが、新たな課題となっているという。米コベリティ CTO ベン・シェルフ氏は次のように指摘する。「コードとテストの複雑さが増しても納期というのは延ばすことができず、さらに、多くの開発者はマルチスレッド開発での本格的なトレーニングが不十分だ。このため、シングルスレッド環境からマルチスレッド環境への移行時には多くの技術的問題が発生している」

coverity02.jpg 米コベリティ 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++版も今後のリリースに向けて現在開発中という。

(@IT 平田修)

情報をお寄せください:

Java Agile フォーラム 新着記事

キャリアアップ

- PR -

注目のテーマ

- PR -
ソリューションFLASH

「ITmedia マーケティング」新着記事

トランプ氏勝利で追い風 ところでTwitter買収時のマスク氏の計画はどこへ?――2025年のSNS大予測(X編)
2024年の米大統領選挙は共和党のドナルド・トランプ氏の勝利に終わった。トランプ氏を支...

AI導入の効果は効率化だけじゃない もう一つの大事な視点とは?
生成AIの導入で期待できる効果は効率化だけではありません。マーケティング革新を実現す...

ハロウィーンの口コミ数はエイプリルフールやバレンタインを超える マーケ視点で押さえておくべきことは?
ホットリンクは、SNSの投稿データから、ハロウィーンに関する口コミを調査した。