
Εμείς μερικές φορές να πάρει μια OutOfMemoryError στην παραγωγή και θα ήθελα να είναι σε θέση να αναλύσει το τι προκάλεσε το πρόβλημα, ή τουλάχιστον ό, τι συνέβαινε όταν συνέβη. Φαίνεται ότι θα πρέπει να είναι σε θέση να πάρετε ένα προφίλ HProf με τη χρήση του -XX: + HeapDumpOnOutOfMemoryError επιλογή, αλλά έχω διαβάσει ότι αυτό είναι JVM συγκεκριμένο.


Έχει κανείς χρησιμοποιήσει με επιτυχία αυτή την επιλογή με το Oracle Application v10.1.2.0.2 Server; Αν ναι, έχετε οποιεσδήποτε συμβουλές για το πώς να αναλύσει το αρχείο που προκύπτει;

 
Μήπως η -XX: + HeapDumpOnOutOfMemoryError εργασίες επιλογή με την Oracle Application Server;
============================================================================================



Oracle OC4J είναι πιστοποιημένη για Sun JVM 1.3.1 και 1.4.2 (δείτε [αυτό το PDF](http://www.oracle.com/technology/tech/java/oc4j/1012/collateral/OC4J-FAQ-101202.pdf) ).


Η -XX: + HeapDumpOnOutOfMemoryError επιλογή εισήχθη σε Java 6 και backported σε Java 5,0 ενημερωμένη έκδοση 7 και Java 1.4.2 ενημέρωση 2. Έτσι, για να χρησιμοποιήσετε αυτή την επιλογή θα πρέπει να εκτελέσετε OC4J σε ένα από αυτά τα JVM του.


Για να αναλύσουμε μια μνήμη hprof χωματερή μπορείτε να χρησιμοποιήσετε ένα μεγάλο αριθμό εργαλείων, όπως το Eclipse Analyzer μνήμης (περιλαμβάνεται με το Eclipse 3.5 Galileo), VisualVM ή NetBeans.

 

Ναι, αυτό εξαρτάται από την έκδοση JVM σας. Μερικά JVMs δεν φαίνεται να υποστηρίζει -XX: + HeapDumpOnOutOfMemoryError παράμετρο.

 

Αυτή η επιλογή είναι ειδικά για SUN / SAP / HP JVM, καθώς και αμφιβάλλω ότι θα μπορούσε να λειτουργήσει αν χρησιμοποιείτε το JRockit VM. JRockit μπορεί επίσης να μην υποστηρίζει τη μορφή hprof καθόλου, διότι δεν απαιτείται από το spec Java. 


Μπορεί να θέλετε να ελέγξετε [YourKit](http://www.yourkit.com/faq/index.jsp#jrockit) το οποίο είναι το μόνο εργαλείο που γνωρίζω ότι έρχεται κοντά στον [αναλυτή μνήμης Eclipse](http://www.eclipse.org/mat) για [ανάλυση χρήση μνήμης](http://kohlerm.blogspot.com/search/label/memory) . Φαίνεται να υποστηρίζει JRockit. 

 