Question

Je maintiens le processus de construction d'un grand (> 500 000 LOC) projet Java. Je viens d'ajouter une étape d'analyse Sonar à la fin de la nightly builds. Mais il faut plus de trois heures pour exécuter ... Ce n'est pas un problème grave (il arrive du jour au lendemain), mais je voudrais savoir si je peux accélérer (pour que je puisse l'exécuter manuellement pendant les heures de travail si on le souhaite ).

Tout Sonar, Hudson, Maven d'options ou JDK je peux modifier cela pourrait améliorer la situation?

[INFO]  -------------  Analyzing Monolith
[INFO]  Selected quality profile : Sonar way, language=java
[INFO]  Configure maven plugins...
[INFO]  Sensor SquidSensor...
[INFO]  Java AST scan...
[INFO]  Java AST scan done: 103189 ms
[INFO]  Java bytecode scan...
... (snip)
[INFO]  Java bytecode scan done: 19159 ms
[INFO]  Squid extraction...
[INFO]  Package design analysis...
... (over three hour wait here)
[INFO]  Package design analysis done: 12000771 ms
[INFO]  Squid extraction done: 12277075 ms
[INFO]  Sensor SquidSensor done: 12404793 ms

12 millions de millisecondes = 200 minutes. C'est une longue période! Par comparaison, les étapes et Compile test avant l'étape de sonar prennent moins de 10 minutes. D'après ce que je peux dire, le processus est lié CPU; un tas plus n'a aucun effet. Peut-être qu'il doit être à cause de cette façon de l'analyse enchevêtrement / duplication, je ne sais pas. Bien sûr, je sais que le fractionnement du projet est la meilleure option! Mais cela prendra un montant équitable du travail; si je peux modifier une configuration en attendant, ce serait bien.

Toutes les idées?

Était-ce utile?

La solution 2

De Freddy Mallet sur la liste:

» ... le problème ne vient pas de la DB, mais proviennent de l'algorithme pour identifier toutes les dépendances de package à couper. ... Si vous parvenez à couper ce projet dans plusieurs modules, votre problème disparaîtra. «

J'ai testé cette théorie en excluant un ensemble relativement important, et il est tombé assez sûr de façon spectaculaire. En théorie, le nombre de connexions pourrait croître avec le nombre quadratiquement de paquets, cette approche est probablement aussi bonne que possible avec une telle base de code.

Autres conseils

Je marchais dans vos chaussures: sur 2 millions + projet loc (qui aurait dû être divisé en il y a des sous-projets années, en effet), je ne ai jamais vu l'analyse de conception de l'emballage pour terminer dans les 4 jours de calcul ...

Au SONAR-2164 (Ajouter une option pour sauter la phase quadratique "Analyse de conception Package") , j'ai soumis un patch qui permettrait aux utilisateurs de définir vrai dans leur dossier de projet Maven afin que l'analyse de conception de l'emballage est sautée. Ce patch est en attente d'approbation et est actuellement prévue pour être inclus dans v2.7.

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