سؤال

أنا أكتب تطبيق 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_*.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top