Question

Je me demandais s'il y a un cadre ou une application (application) / programme qui peut analyser la concurrence de tout code Java?

Si l'outil connaît toutes les implémentations des classes et des méthodes expédiées JRE, il s'agit d'une simple analyse de blocs et de méthodes synchronisés et de leurs hiérarchies d'appels.D'ici, il peut créer un réseau Petri et vous dire avec certitude si vous pouviez jamais ressentir une impasse.

suis quand je manque quelque chose ou est-ce vraiment si facile?Ensuite, il doit y avoir un outil cool faire ce genre de choses?Ou un tel outil signalerait-il trop de cadres possibles qui sont complètement économisés en raison de certains programmes / logiques commerciaux sous-jacents?Les filets de Pétri doivent être suffisamment puissants pour gérer ces situations?

Cela permettrait d'économiser de nombreuses heures d'heures de recherche de bogues qui pourraient ou non être liées à des problèmes de verrouillage morts.

Était-ce utile?

La solution

Bien que (beaucoup) Les bugs associés à la concurrence peuvent être trouvés à l'aide d'une analyse de code statique, elle ne s'applique pas à tous les types de bugs.Certains bugs n'apparaissent qu'à l'exécution sous certaines conditions.

IBM a un outil appelé concours que ".Effectuer l'exécution des threads de programme tels que les scénarios de programme susceptibles de contenir des conditions de race, des blocages et d'autres bogues intermittents (collectivement appelés problèmes de synchronisation) sont forcés d'apparaître avec une fréquence élevée ».

Cela nécessite des tests en cours d'exécution (unité) contre une version instrumentée de votre application.Plus d'informations de fond dans ce Article de développementworks .

Autres conseils

Ce papier décrit un outil qui effectue une analyse statique deune bibliothèque et détermine si une impasse est possible.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top