2012-01-27 20 views
7

Javaプロジェクトの競合状態を自動的にチェックする静的解析ツールはありますか? Eclipse、Spring、およびHibernateをサポートするものが好ましい。ありがとうJavaプロジェクトの競合状態を自動的にチェックする静的解析ツールはありますか?

編集:必ずしも静的解析ツールではないかもしれませんが、Javaスレッド(少なくともJUnit)を異なるランダム速度で実行し、デバッガで同じ速度プロファイルを再現できるツールである必要があります。したがって、競合状態を検出するほぼすべての方法が役立ちます。

+2

あなたを助けるために彼らの努力のために人々に信用を与えると、[答えを受け入れる]にしてください(HTTP ://meta.stackexchange.com/a/5235/160062)を参照してください。あなたは一つの答えを受け入れていません。 – oers

答えて

6

JLintは、競合条件を検出するために使用することができる。 IBMのConTestは並行性の問題をテストするように設計されているので、同様にそれを見てください。

+0

JLintのウェブサイトが深刻に見えません。それであなたはあなた自身でそれを試しましたか?それはあなたのためにうまくいったのですか? – user1081596

+2

JLINTは最高の@ user1081596です。 –

+2

JLintは「user1081596」という名前を持つほど深刻です;)ジョークを除いて、「真剣に見えません」という唯一の理由は、仲間がウェブサイトを気にしなかったからです。 java.netまたはsourceforgeの下でそれをホストしていません。 – Gepsens

1

静的解析は間違いなく良いことです。しかし、私はあまりにも静的ではないことをお勧めしますJPF

+1

しかし、JPFを使うのがやや簡単だったらいいですね。 –

+0

ドキュメンテーションによると、JPFはデッドロックをチェックしますが、競合状態をチェックしていますか? – user1081596

+0

@ user1081596はい、あります。 –

1

eclipseを使用する場合は、FindBugsを使用してコードを確認できます。必要に応じて、コマンドラインからでもSwingインタフェースを使ってでも実行できます。

0

私はこの製品を個人的に使っていませんが、「Javaスレッド(少なくともJUnit)を異なるランダム速度で実行するツール」を探していると書いたときにはCorensic Jinxと考えました。 Corensicの製品説明ページによると、JinxはネイティブOSスレッドレベルでスレッド操作を観察し、「潜在的なインターリーブ(すなわち、将来の一連の条件の下で発生する代替の事象、または実行シナリオ)を動的に構築する並行処理の障害が発生し、それらの実行パスを迅速にテストして、デッドロック、競合状態、およびアトミック性の違反などの並行処理の問題を引き起こします。

これは、すべてのJavaアプリケーションでは低すぎる可能性がありますが、JavaおよびMicrosoft .NETアプリケーションをサポートするにはCorensic claimsです。

は、Javaフラグ競合状態だけでなく、デッドロックの可能性とアトミック違反についてUsing Jinx with Java

1

コベリティ静的解析を参照してください。

さらに、Coverityには、競合他社の競合状況やデッドロックの可能性をテストし報告するDynamic Analysis製品があります。単体テストで実行することは、複雑なアプリケーションが本番環境で使用する対話のタイプよりもロジックが単純な傾向があり、ストレス、負荷テスト、または特別なテストでも動的分析を実行する方が効果的です。

免責事項:私は以前はCoverityで働いていました。

0

AppDynamicsは、JVMに接続され、個々のスレッドのメモリ使用量に関する情報を提供するツールです。

0

データレース、特にデータレースの書き込み/書き込みを検出できるツールhttp://vmlens.comを開発しました。同期なしで異なるスレッドからアクセスされるメモリフィールドを検索します。

静的解析ツールではなく、動的です。データ競合を検出するには、少なくとも2つの異なるスレッドによってメモリロケーションにアクセスする必要があります。

3

ThreadSafehttp://www.contemplateltd.com/threadsafe、無料トライアル利用可能)

よろしく トーマスは疑問もレース条件以外のJava並行処理の欠陥をカバーする、を要求するかを正確に行います。 Apache JMeterやK9Mailなどのオープンソースアプリケーションで検出される同時実行エラーの例については、InfoQ articleを参照してください。ユーザーの意見については、Ivan Senic's blogを参照してください。

は、(情報開示:スレッドセーフで商用ツールである、と私は考える、それを製造する会社の共同創設者です。)

+0

ThreadSafeは放棄されていますか? 2015年3月20日以降の最新バージョンです。 – Nadar

関連する問題