كيف يمكنني منع Java من إنشاء ملفات hsperfdata؟
-
09-06-2019 - |
سؤال
أنا أكتب تطبيق Java يعمل على Linux (باستخدام Sun's JDK).يستمر في الإبداع /tmp/hsperfdata_username
الدلائل، والتي أود أن منع.هل هناك أي طريقة لمنع جافا من إنشاء هذه الملفات؟
المحلول
جرب خيار JVM -XX:-UsePerfData
قد يكون ما يلي مفيدًا من الرابط https://docs.Oracle.com/javase/8/docs/technotes/tools/unix/Java.html
-XX:+UsePerfData
Enables the perfdata feature. This option is enabled by default
to allow JVM monitoring and performance testing. Disabling it
suppresses the creation of the hsperfdata_userid directories.
To disable the perfdata feature, specify -XX:-UsePerfData.
نصائح أخرى
استخدم خيار JVM -XX:-UsePerfData
.
ولن يكون لهذا تأثير سلبي على الأداء، كما تقول بعض الإجابات الأخرى.
بشكل افتراضي، يتم تشغيل أدوات jvmstat في HotSpot JVM.خيار JVM -XX:-UsePerfData
يطفئه.أعتقد أن إيقاف تشغيل الأجهزة سيؤدي إلى تحسين الأداء (كمية تافهة).
لذا فإن الجانب السلبي لإيقاف تشغيل أدوات jvmstat هو أنك تفقد معلومات مراقبة الأداء.
تم وصف jvmstat هنا http://java.sun.com/performance/jvmstat/
وهنا موضوع مع شخص يشعر بالقلق من أن يتحول على jvmstat - مع الخيار -XX:+UsePerfData
- سوف يضر الأداء.http://www.theserverside.com/discussions/thread.tss?thread_id=33833
(ربما لن يحدث ذلك نظرًا لأن jvmstat مصمم ليكون ""مشغلًا دائمًا"، ولكن له تأثير ضئيل على الأداء".)
بدلاً من إيقاف تشغيله، قم بتغيير موقع java.io.tmpdir.إضافة -djava.io.tmpdir =/mydir/في مكان ما/آخر/إلى أمر بدء تشغيل Java الخاص بك ، ثم سيكون الملف في مكان ما تتحكم فيه.
لاحظ تعليق @simonc:يعمل هذا فقط في إصدارات قليلة من JVM ولم يعد مدعومًا.يرى http://bugs.sun.com/view_bug.do?bug_id=6447182, http://bugs.sun.com/view_bug.do?bug_id=6938627, http://bugs.sun.com/view_bug.do?bug_id=7009828 للمزيد من المعلومات.
من رابط svrist:
العنصر الأول في http://java.sun.com/performance/jvmstat/faq.html يذكر خيارًا يمكنك إيقاف تشغيله لتعطيل مجموعة الميزات بأكملها:-XX:-UsePerfData.
بحسب ال تقرير الشوائب المقدمة هناك حل بديل:
سيقوم هذا الخيار غير الموثق بتعطيل ميزة PerfData:
-XX:-UsePerfData
ومن الجدير بالذكر أنها ميزة وليست خطأ.يعمل الحل البديل أعلاه على تعطيل الميزة فقط.
يحرر:تنظيف المعلومات وتلخيصها
ملخص:
- إنها ميزة وليست خطأ
- يمكن إيقاف تشغيله باستخدام -XX:-UsePerfData مما قد يضر بالأداء
المعلومات ذات الصلة:
يوجد ايضا "-XX:+PerfDisableSharedMem"
الخيار (الموصى به بواسطة Sun) والذي من شأنه أن يسبب مشكلات أقل في الأداء مقارنة باستخدام "-XX:-UsePerfData"
خيار.
كملحق لرد Mack (تم الرد عليه في 25 مارس 2011 الساعة 17:12)، يبدو أن الخيار java.tmp.dir لم يعد متاحًا منذ Java 8.انظر المعلومات على: https://bugs.java.com/view_bug.do?bug_id=8189674
لذا يبدو أن تعطيل الخيار باستخدام -XX:-UsePerfData هو الخيار الوحيد الذي لا يحتوي على ملفات hsperfdata_*.