2014-11-22 15 views
8

zu starten, wenn ich meine jhipster app starten mit "mvn feder boot: run", dauert es bis zu 60 Sekunden zu starten ... ersten Teil meiner log ist:Frühlings-Boot langsam

[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 

-> Dann hängt es ca. 30 Sekunden, bevor sie fortfahren:

[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 

...

ich ältere Versionen von jhipster Generator verwendet erinnere mich, (0,17 usw.) et begann es in 15 bis 20 Sekunden. Ist das normal oder gibt es ein Problem auf meiner Seite? Wo suchen?

Danke, O.

Antwort

0

Das ist seltsam. In der Tat sollte es in 5-15 Sekunden je nach Ihrem Gerät und spezifischen Setup starten. Aber es sollte nicht für 30 Sekunden hängen: die Zeile, die Sie anzeigen, ist ein bisschen neu, weil wir die Anwendung im Debug-Modus starten, wenn Sie das Entwicklerprofil verwenden -> Sie können einen Debugger anhängen. Es sieht so aus, als ob Sie darauf warten, dass Sie einen Debugger anschließen: Ich habe es nie selbst gesehen, also haben Sie vielleicht eine bestimmte JVM-Option zum Anhängen eines Debuggers beim Start, mit einer Zeitüberschreitung von 30 Sekunden?

+0

Nur 30 Sekunden! :( [INFO] org.myapp.Application - Begonnene Anwendung in 230.105 Sekunden (JVM läuft für 230.971) –

+0

Das treibt mich in die Irre, es hängt nach dieser Überwachungszeile, aber als ich es entfernte, war die Pause in der Zeile davor wie in den 90er Jahren und debug als 230s +. Ich habe alles hier versucht http://stackoverflow.com/questions/11371393/tomcat-not-start-through-eclipse-timeout und ich erhöhte den Speicher zur Verfügung zu verdunkeln Ideen. –

+0

Ich habe meine Ergebnisse in einer Antwort geschrieben. Kurze Antwort ist im Grunde Swagger! –

0

Vielen Dank für Ihr Feedback. Ich untersuchte und legte mehr Protokolle in die App (Application.java). Eigentlich kommt das Problem nicht aus dem Debug-Modus, die Anwendung hängt hier nicht.

Die erste große "Pause" kommt vom Scannen von Liquibase-Paketen (addLiquibaseScanPackages(); in Application.java): 26 Sekunden! Meine zweite Pause bezieht sich immer noch auf Liquibase (Protokoll "Konfigurieren von Liquibase"): 20 Sekunden. Wenn ich während dieser Zeit den Liquibase-Protokolllevel auf DEBUG setze, sehe ich, dass eine Sperre gesetzt und dann wieder freigegeben wird, aber es passiert sehr schnell.

Ich verstehe wirklich nicht. Ich benutze h2 In-Memory-Datenbank, jdk 1.7.0_25 und Maven 3.0.5, läuft auf MacBook Pro mit SSD. Hier ist mein vollständiges Protokoll, wenn ich mit "mvn spring-boot: run" laufe.

[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 

Danke, Olivier

4

Ich habe mich langsam Startzeiten gelitten und fragen, was die Ursache war. Ich bekomme alle Konsolenmeldungen, die sagen, dass verschiedene Dinge begonnen haben und dann hängt es kurz vor der letzten Nachricht, um zu sagen, dass die App geladen wurde.

Schließlich konnte ich Java VisualVM als Teil des JDK verwenden, um zu sehen, was vor sich ging. Wenn Sie die jdk installiert haben, ist seine jvisualvm.exe im Ordner bin. Wenn ich dann als Application.java debuggen will, erscheint der Tomcat-Prozess und Sie können verfolgen, was vor sich geht.

Ich nahm ein paar Thread-Dumps, wo es hängt und es schien immer zu sein, wo die Swagger-API-Dokumente generiert werden. Ein bisschen mehr graben und dies ist in einer Klasse namens MetricsConfiguration konfiguriert, die ausgeschlossen wird, wenn Sie mit einem Profil namens "schnell" laufen.

in Eclipse bearbeitet ich meine Debug-Konfiguration ein Programm Argument aufzunehmen: bis 25 nur

--spring.profiles.active=dev,fast 

Dies verkürzt sich die Startzeit von 230 Sekunden!

Ich hatte einen schnellen Scan und schnell scheint alle möglichen Dinge zu deaktivieren. Es sieht hauptsächlich wie das Zeug unter dem Admin-Menü aus, das Sie während der Entwicklung sowieso nicht brauchen werden. Persönlich würde ich ein schnelles Booten bevorzugen, um die restlichen Dokumente während der Entwicklung sehen zu können.

Swagger, der so ein Schwein ist, ließ mich mich wundern, wenn es schließlich solch eine gute Idee ist. Ist es die Kosten wert? Ich lese dann diese http://java.dzone.com/articles/swagger-great und ich überlege gerade, es ganz zu entfernen. Es ist eine nette Idee, aber fügt dem Build + 33MB hinzu und verursachte wirklich langsame Startzeiten.

Für Informationen habe ich rund 16 Einheiten. Also nicht klein, aber auch nicht übermäßig groß.

0

Sie können einfach xmx wie java -jar -Xmx1024m ändern. Da, wenn Spring Boot gestartet wird, lädt es viele Frühlingsbohnen. Sie können Heapspeicher hinzufügen, um die Leistung zu verbessern.

0

Stellen Sie sicher, dass Sie den Server nicht im Debugmodus ausführen und einen Haltepunkt festgelegt haben. Dies reduzierte die Startzeit einer meiner Anwendungen von 22 Sekunden auf 3 Minuten.

+0

Große Geschwindigkeit, Sie haben gerade 158 Sekunden verloren. –