2014-11-22 15 views
8

Quando lancio la mia app jhipster utilizzando "mvn primavera-boot: run", ci vogliono fino a 60 secondi per iniziare ... prima parte del mio log è:Primavera-boot lento a partire

[INFO] Scanning for projects... 
[INFO] 
[INFO] ------------------------------------------------------------------------ 
[INFO] Building jhipster 0.0.1-SNAPSHOT 
[INFO] ------------------------------------------------------------------------ 
[INFO] 
[INFO] >>> spring-boot-maven-plugin:1.1.9.RELEASE:run (default-cli) @ jhipster >>> 
[INFO] 
[INFO] --- maven-enforcer-plugin:1.3.1:enforce (enforce-versions) @ jhipster --- 
[INFO] 
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ jhipster --- 
[INFO] Using 'UTF-8' encoding to copy filtered resources. 
[INFO] Copying 4 resources 
[INFO] Copying 22 resources 
[INFO] 
[INFO] --- maven-compiler-plugin:3.1:compile (default-compile) @ jhipster --- 
[INFO] Nothing to compile - all classes are up to date 
[INFO] 
[INFO] --- maven-resources-plugin:2.6:testResources (default-testResources) @ jhipster --- 
[INFO] Using 'UTF-8' encoding to copy filtered resources. 
[INFO] Copying 3 resources 
[INFO] 
[INFO] --- maven-compiler-plugin:3.1:testCompile (default-testCompile) @ jhipster --- 
[INFO] Nothing to compile - all classes are up to date 
[INFO] 
[INFO] <<< spring-boot-maven-plugin:1.1.9.RELEASE:run (default-cli) @ jhipster <<< 
[INFO] 
[INFO] --- spring-boot-maven-plugin:1.1.9.RELEASE:run (default-cli) @ jhipster --- 
[INFO] Attaching agents: [] 
Listening for transport dt_socket at address: 5005 

-> Poi si blocca per circa 30 secondi prima di continuare:

[INFO] com.mycompany.myapp.Application - Starting Application on MacBook-Pro.local with PID 5130 (/Users/othomas/Developpement/jhipster-1.9.0/target/classes started by othomas in /Users/othomas/Developpement/jhipster-1.9.0) 
[DEBUG] com.mycompany.myapp.Application - Running with Spring Boot v1.1.9.RELEASE, Spring v4.0.8.RELEASE 
[DEBUG] org.jboss.logging - Logging Provider: org.jboss.logging.Log4jLoggerProvider 

...

ricordo di aver usato le vecchie versioni di generatore jhipster (0,17 ecc) et ha cominciato a 15-20 secondi. È normale o c'è un problema dalla mia parte? Dove cercare?

Grazie, O.

risposta

0

Questo è strano. In effetti, dovrebbe iniziare tra 5-15 secondi a seconda della macchina e della configurazione specifica. Ma non dovrebbe rimanere sospeso per 30 secondi: la linea che mostri è un po 'nuova, è perché lanciamo l'applicazione in modalità di debug quando usi il profilo dev -> puoi attaccare un debugger su di esso. Sembra che ti aspetti di connettere un debugger: non l'ho mai visto da solo, quindi forse hai qualche opzione JVM specifica per collegare un debugger all'avvio, con un timeout di 30 secondi?

+0

Solo 30 secondi! :( [INFO] org.myapp.Application - Applicazione avviata in 230.105 secondi (JVM in esecuzione per 230.971) –

+0

Questo mi sta facendo girare in loop. Si blocca dopo quella linea di controllo ma quando l'ho rimosso la pausa era sulla linea prima. come è circa 90s e debug come 230s +. Ho provato tutto qui http://stackoverflow.com/questions/11371393/tomcat-not-starting-through-eclipse-timeout più ho alzato la memoria disponibile per eclissi. idee –

+0

Ho scritto le mie conclusioni in una risposta: la risposta breve è fondamentalmente spavalderia! –

0

Grazie per il vostro feedback. Ho studiato e inserito più log nell'app (Application.java). In realtà il problema non viene dalla modalità di debug, l'applicazione non si blocca qui.

La prima grande "pausa" deriva dalla scansione dei pacchetti di liquibase (addLiquibaseScanPackages(); in Application.java): 26 secondi! La mia seconda pausa è ancora correlata a Liquibase (registro "Configurazione di Liquibase"): 20 secondi. Durante questo periodo, se metto il livello di Log Liquibase su DEBUG, vedo che un blocco è impostato e poi rilasciato, ma succede molto velocemente.

Davvero non capisco. Sto usando il database in memoria h2, jdk 1.7.0_25 e Maven 3.0.5, in esecuzione su MacBook Pro con SSD. Ecco il mio registro completo quando corro con "mvn spring-boot: run".

[INFO] Scanning for projects... 
[INFO] 
[INFO] ------------------------------------------------------------------------ 
[INFO] Building jhipster 0.0.1-SNAPSHOT 
[INFO] ------------------------------------------------------------------------ 
[INFO] 
[INFO] >>> spring-boot-maven-plugin:1.1.9.RELEASE:run (default-cli) @ jhipster >>> 
[INFO] 
[INFO] --- maven-enforcer-plugin:1.3.1:enforce (enforce-versions) @ jhipster --- 
[INFO] 
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ jhipster --- 
[INFO] Using 'UTF-8' encoding to copy filtered resources. 
[INFO] Copying 4 resources 
[INFO] Copying 22 resources 
[INFO] 
[INFO] --- maven-compiler-plugin:3.1:compile (default-compile) @ jhipster --- 
[INFO] Nothing to compile - all classes are up to date 
[INFO] 
[INFO] --- maven-resources-plugin:2.6:testResources (default-testResources) @ jhipster --- 
[INFO] Using 'UTF-8' encoding to copy filtered resources. 
[INFO] Copying 3 resources 
[INFO] 
[INFO] --- maven-compiler-plugin:3.1:testCompile (default-testCompile) @ jhipster --- 
[INFO] Nothing to compile - all classes are up to date 
[INFO] 
[INFO] <<< spring-boot-maven-plugin:1.1.9.RELEASE:run (default-cli) @ jhipster <<< 
[INFO] 
[INFO] --- spring-boot-maven-plugin:1.1.9.RELEASE:run (default-cli) @ jhipster --- 
[INFO] Attaching agents: [] 
Listening for transport dt_socket at address: 5005 
Wed Nov 26 16:32:23 CET 2014 Added log : Application is about to start 
Wed Nov 26 16:32:28 CET 2014Added log : Application started, now we set banner to false 
Wed Nov 26 16:32:28 CET 2014Added log : About to add Default profile 
Wed Nov 26 16:32:28 CET 2014Added log : Default Profile added. Now we scan liquibase packages 
Wed Nov 26 16:32:28 CET 2014Added log : Liquibase pakages scanned. Now we run the app 
2014-11-26 16:32:54,564 [INFO] com.mycompany.myapp.Application - Starting Application on MacBook-Pro.local with PID 25452 (/Users/othomas/Developpement/jhipster-1.9.0/target/classes started by othomas in /Users/othomas/Developpement/jhipster-1.9.0) 
2014-11-26 16:32:54,567 [DEBUG] com.mycompany.myapp.Application - Running with Spring Boot v1.1.9.RELEASE, Spring v4.0.8.RELEASE 
2014-11-26 16:32:57,429 [DEBUG] org.jboss.logging - Logging Provider: org.jboss.logging.Log4jLoggerProvider 
2014-11-26 16:32:57,559 [DEBUG] com.mycompany.myapp.config.AsyncConfiguration - Creating Async Task Executor 
2014-11-26 16:32:58,305 [DEBUG] com.mycompany.myapp.config.MetricsConfiguration - Registering JVM gauges 
2014-11-26 16:32:58,379 [INFO] com.mycompany.myapp.config.MetricsConfiguration - Initializing Metrics JMX reporting 
2014-11-26 16:32:58,445 [DEBUG] com.mycompany.myapp.config.DatabaseConfiguration - Configuring Datasource 
2014-11-26 16:32:59,353 [DEBUG] com.mycompany.myapp.config.DatabaseConfiguration - Configuring Liquibase 
2014-11-26 16:33:19,489 [DEBUG] com.mycompany.myapp.config.CacheConfiguration - Starting Ehcache 
2014-11-26 16:33:19,491 [DEBUG] com.mycompany.myapp.config.CacheConfiguration - Registering Ehcache Metrics gauges 
2014-11-26 16:33:23,419 [DEBUG] com.mycompany.myapp.config.MailConfiguration - Configuring mail server 
2014-11-26 16:33:24,559 [INFO] com.mycompany.myapp.config.WebConfigurer - Web application configuration, using profiles: [dev] 
2014-11-26 16:33:24,560 [DEBUG] com.mycompany.myapp.config.WebConfigurer - Initializing Metrics registries 
2014-11-26 16:33:24,564 [DEBUG] com.mycompany.myapp.config.WebConfigurer - Registering Metrics Filter 
2014-11-26 16:33:24,565 [DEBUG] com.mycompany.myapp.config.WebConfigurer - Registering Metrics Servlet 
2014-11-26 16:33:24,567 [DEBUG] com.mycompany.myapp.config.WebConfigurer - Registering GZip Filter 
2014-11-26 16:33:24,569 [DEBUG] com.mycompany.myapp.config.WebConfigurer - Initialize H2 console 
2014-11-26 16:33:24,570 [INFO] com.mycompany.myapp.config.WebConfigurer - Web application fully configured 
2014-11-26 16:33:29,753 [INFO] com.mycompany.myapp.Application - Running with Spring profile(s) : [dev] 
2014-11-26 16:33:30,012 [INFO] com.mycompany.myapp.config.ThymeleafConfiguration - loading non-reloadable mail messages resources 
2014-11-26 16:33:30,896 [DEBUG] com.mycompany.myapp.aop.logging.LoggingAspect - Enter: com.mycompany.myapp.repository.CustomAuditEventRepository.auditEventRepository() with argument[s] = [] 
2014-11-26 16:33:30,905 [DEBUG] com.mycompany.myapp.aop.logging.LoggingAspect - Exit: com.mycompany.myapp.repository.CustomAuditEventRepository.auditEventRepository() with result = [email protected]e963 
2014-11-26 16:33:37,229 [INFO] com.mycompany.myapp.Application - Started Application in 68.311 seconds (JVM running for 73.972) 
Wed Nov 26 16:33:37 CET 2014Added log : App is running 

Grazie, Olivier

4

Ho sofferto tempi di avvio lenti me stesso e chiedersi quale sia la causa era. Ricevo tutti i messaggi della console che dicono che varie cose sono iniziate e poi si blocca appena prima del messaggio finale per dire che l'app è stata caricata.

Alla fine ho scoperto che potevo usare Java VisualVM come parte del JDK per vedere cosa stava succedendo. Se hai il jdk installato il suo jvisualvm.exe nella cartella bin. Quindi, quando seleziono il debug come Application.java, il processo di tomcat si apre e puoi tenere traccia di ciò che sta accadendo.

Ho preso un paio di discariche di thread dove si blocca e sembrava essere sempre dove vengono generati i documenti API swagger. Un po 'più di scavo e questo è configurato in una classe chiamata MetricsConfiguration che è esclusa se si esegue con un profilo chiamato "veloce".

in Eclipse ho modificato la mia configurazione di debug aggiungere un argomento di programma:

--spring.profiles.active=dev,fast 

Questo riduce il tempo di avvio da 230 secondi a soli 25!

Ho avuto una scansione rapida e veloce sembra disabilitare tutti i tipi di cose. Sembra principalmente la roba sotto il menu di amministrazione che probabilmente non è necessario durante lo sviluppo comunque. Personalmente preferirei un avvio veloce per poter vedere i documenti rest durante lo sviluppo.

La spavalderia essendo un tale maiale mi ha fatto chiedere se è davvero una buona idea dopotutto. Ne vale il costo? poi leggo questo http://java.dzone.com/articles/swagger-great e sto pensando di rimuoverlo del tutto. È una buona idea, ma sembra che aggiungere 33mb alla build + per me stia causando tempi di avvio molto lenti.

Per informazioni ho circa 16 entità. Quindi non piccolo ma non eccessivamente grande neanche.

0

si può semplicemente modificare xmx come java-jar Xmx1024m. Perché all'avvio di Spring, carica un sacco di fagiolini. È possibile aggiungere memoria heap per migliorare le prestazioni.

0

Assicurarsi di non eseguire il server in modalità di debug e di impostare un punto di interruzione. Ciò ha ridotto il tempo di avvio di una delle mie applicazioni da 22 secondi a 3 minuti.

+0

Grande accelerazione, hai appena perso 158 secondi. –

Problemi correlati