Pergunta

Eu mantenho o processo de construção para um grande projeto Java (> 500.000 loc). Acabei de adicionar uma etapa de análise de sonar ao final das construções noturnas. Mas leva mais de três horas para executar ... isso não é um problema grave (acontece da noite para o dia), mas eu gostaria de saber se posso acelerar (para que eu pudesse executá -lo manualmente durante o horário de trabalho, se desejado ).

Qualquer opções de sonar, hudson, maven ou jdk que eu possa ajustar que possa melhorar a situação?

[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 milhões de milissegundos = 200 minutos. Isso é muito tempo! Em comparação, as etapas de compilação e teste antes da etapa do sonar dão menos de 10 minutos. Pelo que posso dizer, o processo é ligado à CPU; Uma pilha maior não tem efeito. Talvez tenha que ser assim por causa da análise de emaranhada / duplicação, eu não sei. Claro, eu sei que dividir o projeto é a melhor opção! Mas isso levará uma boa quantidade de trabalho; Se eu puder ajustar alguma configuração nesse meio tempo, isso seria bom.

Alguma ideia?

Foi útil?

Solução 2

De Freddy Mallet na lista:

"... o problema não vem do banco de dados, mas vem do algoritmo para identificar todas as dependências do pacote para cortar ... se você conseguir cortar esse projeto em vários módulos, seu problema desaparecerá".

Testei essa teoria excluindo um pacote relativamente grande e com certeza ela caiu dramaticamente. Em teoria, o número de conexões pode crescer quadraticamente com o número de pacotes; portanto, essa abordagem é provavelmente tão boa quanto possível com uma base de código tão grande.

Outras dicas

Entrei no seu lugar: em um projeto de 2 milhões de mais localizados (que deveria ter sido dividido em subprojetos anos atrás, de fato), nunca vi a análise de design de pacotes para concluir dentro de 4 dias após a computação ...

AS SONAR-2164 (Adicione uma opção para pular a fase quadrática de "Análise de design de pacotes"), Enviei um patch que permitiria que os usuários definissem o arquivo de projeto MAVEN para que a análise de design de pacotes seja ignorada. Este patch está pendente de aprovação e está atualmente programado para inclusão na v2.7.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top