2015-03-03 6 views
5

Ich hatte heute während eines Interviews eine schwierige Frage. Sie haben mich gefragt, wie ich die Ursache für einen Speicherfehler in meinem Produktionscode finde. Ich fing an, über Profiler zu sprechen. Der Interviewer zog es in eine andere Richtung, indem er sagte: Wie erzeuge ich den Traffic, der in der Produktion passiert, um vom Profiler zu profitieren? Ich hatte keine Ahnung. Jede Information wird sehr hilfreich sein.Speicher Lecksuche in Produktionscode

Antwort

3

Profilometer sind nicht das beste Werkzeug, Speicherverluste in der Produktion

  1. Profilometer nicht laufen auf Produktion JVMs
  2. es oft unmöglich ist neu in dev oder testen Sie die Bedingungen zu jagen, die den Speicherverlust in Produktion (der Interviewer Hinweis)

die Lösung ist eine Heapdump zu nehmen (jmap zum Beispiel unter Verwendung von - JVM abhängig) und analysieren sie ein Werkzeug wie die ausgezeichnete (und frei verfügbar) SAP Memory Analyzer (MAT) mit

+1

Hinweis: Wenn Sie den Heap-Dump ausführen, wird der Anwendungsserver nur noch eingefroren, und manchmal kann die Anwendung abstürzen. Angenommen, Sie haben jvm 12 GB für die Produktion zugewiesen, benötigen Sie einen anderen Computer mit mehr als 12 GB, um den Heapspeicher zu analysieren. Sie können jvisualvm auch zur Analyse verwenden. Es wird als Teil zu JDK geliefert. –