2016-01-25 23 views
7

Sto utilizzando il nuovo plug-in di eclissi SonarLint in un grande progetto Eclipse RCP. È estremamente lento. L'analisi di tutti i progetti di plug-in (oltre 310) dura diverse ore. SonarLint crea un registro per ogni generazione di progetto, che assomiglia a questo:SonarLint è super slow

 
Starting SonarLint 
... 
Load global repositories (done from cache) | time=98ms 
... 
Load plugins index (done from cache) | time=3ms 
... 
Load project repositories (done) | time=3ms 
... 
Load quality profiles (done from cache) | time=45ms 
... 
Load active rules (done) | time=174ms 
... 
Load server rules (done from cache) | time=13ms 
... 
JavaClasspath initialization done: 74003 ms 
... 

Come possiamo vedere, la maggior parte del tempo che sono in attesa per l'inizializzazione java classpath. Sta peggiorando ulteriormente: questa inizializzazione viene eseguita dopo ogni salvataggio di un singolo file java!

C'è un modo per accelerare questo processo?

+0

Questo potrebbe essere il risultato dell'esecuzione di Eclipse/SonarLint con un heap troppo piccolo. Oppure eseguendo Eclipse con un grande heap su un sistema che non ha abbastanza memoria (fisica). Guarda le statistiche sulle prestazioni del sistema. Attiva la registrazione GC della JVM. –

+0

No. Utilizzo dell'opzione JVM "-Xmx 8g" su un computer con 16 GB di RAM. –

+0

Mi aspetto anche che il caricamento dalla cache sia più rapido (pochi millisecondi). Hai un I/O lento o sovraccarico? –

risposta

-3

Ho provato a installare il plug-in SonarLint eclipse senza il componente SonarLint per Eclipse Java Cofiguration Helper e ha risolto il problema. Sto usando Eclipse_4.6.1 con SonarLint_2.2.1

Dopo sopra fix:

... 
JavaClasspath initialization done: 0 ms 
... 
JavaTestClasspath initialization done: 0 ms 
... 
Java Main Files AST scan done: 327 ms 
... 
Java Test Files AST scan done: 1 ms 
+1

Grazie, questo ha risolto il mio problema! – sagarwadhwa1

6

Rimozione del SonarLint per Eclipse Java Configuration Helper non è una soluzione: rimuoverà l'integrazione di SonarLint con progetti Java , il che significa che l'analisi non avrà molte proprietà importanti necessarie per renderlo accurato, come il classpath.

Potresti avere riscontrato questo problema: https://jira.sonarsource.com/browse/SONARJAVA-1818.

Qui ci sono alcune cose da provare se SonarLint è in esecuzione lenta:

  • Assicurarsi che si sta utilizzando l'analizzatore di Java 4.2, che è incluso nel SonarLint Eclipse> 2.2.1 (se si utilizza la modalità connessa , installarlo nel server SonarQube).
  • Aggiornamento alla versione più recente di SonarLint (i miglioramenti vengono sempre apportati)
  • Aumentare lo heap space used by Eclipse.

Se si riscontrano ancora problemi di prestazioni, fatecelo sapere in che modo si sta utilizzando SonarLint in modo da rintracciare il problema. È possibile aprire un argomento nello SonarLint group.