لماذا يبطئ البرنامج الصاخب كثيرا عند استخدام تصحيح أخطاء إدخال الأسلوب؟

StackOverflow https://stackoverflow.com/questions/751105

  •  09-09-2019
  •  | 
  •  

سؤال

أنا أستخدم واجهات JDI لإنشاء مصحح ومتى يمكنني استخدام MethodentryRequests لتمكين إدخال الأسلوب يبطئ برنامج الصواعق بسبب عامل عشرات. لقد قمت بتعيين مرشح للخيط الرئيسي وسياسة تعليق التعليق للتعليق_Event_thread. ClassFilter محدود وإذا قمت بطباعة أي أحداث مستلمة، فلا تظهر أكثر من زوجين من أولئك الذين لا ينبغي أن يتلقوا الكثير منها. أقوم بتصحيح الأخطاء محليا ولديه نوع من سطر الأوامر مع برنامج Java الصغير:

-Xdebug -Xrunjdwp:transport=dt_socket,suspend=y,server=y,address=1337

هل كانت مفيدة؟

المحلول

الجواب القصير هو أن التنفيذ يعمل من خلال مترجم الترجمة عند تعيين إدخالات الطريقة. لا أعتقد أن هناك على أي حال حول هذا ...

هذا كان هو الحال بالنسبة لجميع الكود قيد التشغيل في وضع التصحيح ولكن تم تعزيزه في 1.4... الآن Hotspot يعمل من أجل تصحيح الأخطاء "كامل السرعة" إلا في حالة إدخالات الطريقة والمخارج، ونوبضات المراقبة وعند التدخل الوحيد أو في الأساليب التي تحتوي على نقاط توقف.

نصائح أخرى

سبب 2:

  1. يجب أن يضيف الشيكات على كل إدخال طريقة (لا يوجد خيار لضبط بعض الطرق فقط)
  2. الأسلوب المطفي يصبح مستحيلا (بحيث تدير الأساليب الصغيرة 10-100x مرات أبطأ)

الشيء نفسه ينطبق على profilers و .ينت التطبيقات

وأود أن أفترض أن المصحح يحتاج إلى الاستيقاظ لكل طريقة للطريقة لمعرفة ما إذا كان يطابق واحد (ق) تم اختياره لكسر. لأنه يتعين عليه التحقق من كل طريقة استدعاء للحصول على مباراة محتملة قبل أن تتمكن من تنفيذها أبطأ بكثير مما لو كان لا يتعين عليه القيام بكل هذه الشيكات.

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