[Java] كيف "قوة جمع القمامة" من شل؟


Answers

منذ جدك 7 يمكنك استخدام أداة الأمر جدك 'جمد' مثل:

jcmd <pid> GC.run

Question

لذلك أنا أنظر إلى كومة مع جماب على مربع بعيد وأريد أن فرض جمع القمامة على ذلك. كيف يمكنك القيام بذلك دون تفرقع في جفيسوالفم أو جكونسول والأصدقاء؟

وأنا أعلم أنك لا ينبغي أن تكون في ممارسة إجبار جمع القمامة - يجب عليك فقط معرفة لماذا كومة كبيرة / المتنامية.

كما أنني أدرك أن System.GC () لا يجبر بالفعل جمع القمامة - فإنه يخبر غ فقط أنك تريد أن يحدث.

بعد أن قلت أن هناك طريقة للقيام بذلك بسهولة؟ بعض سطر الأوامر التطبيق أنا في عداد المفقودين؟




هناك عدد قليل من الحلول الأخرى (الكثير من الحلول الجيدة هنا بالفعل):

المثال التالي هو ل كدلين-جمكسكلينت:

$ java -jar cmdline-jmxclient-0.10.3.jar - localhost:3812 'java.lang:type=Memory' gc

هذا لطيف لأنه سطر واحد فقط ويمكنك وضعه في السيناريو حقا بسهولة.




إذا كنت تستخدم جولوكيا مع التطبيق الخاص بك، يمكنك تشغيل مجموعة القمامة مع هذا الأمر:

curl http://localhost:8558/jolokia/exec/java.lang:type=Memory/gc