عند تقديم الدعم الفني للعملاء ، نرى غالبًا العديد من تشوهات العملاء على الإطلاق. بعد التخلص من هذه التشوهات ، تم تحسين سرعة تشغيل الكود إلى حد كبير مقارنة مع ما قبل. هذا يسمح لنا بتخمين أن استخدام تشوهات في الكود سيؤدي إلى تحقيق أهمية كبيرة في الأداء. نظرًا لأن الشذوذ جزء مهم من الموقف الخاطئ ، فمن المستحيل التخلي عنه ، لذلك نحن بحاجة إلى قياس تأثير العلاج غير الطبيعي على الأداء.
تجربة
تعتمد تجربتي على رمز بسيط بسيط يرميه بشكل عشوائي. من منظور علمي ، هذا ليس قياسًا دقيقًا تمامًا ، وفي الوقت نفسه ، لا أعرف كيفية القيام برمز التشغيل في رمز التشغيل. ولكن في أي حال ، يجب أن يسمح لنا هذا الرمز بفهم بعض المواقف الأساسية.
والنتيجة ممتعة للغاية: يبدو أن تكلفة الرمي والتقاط تشوهات منخفضة للغاية. في المثال الخاص بي ، حوالي 0.02 ميلي ثانية. ما لم ترمي الكثير من التشوهات (نعني 100000 أو أكثر) ، يتم تجاهل هذا بشكل أساسي. على الرغم من أن هذه النتائج تظهر أن المعالجة غير الطبيعية نفسها لا تؤثر على أداء الكود ، إلا أنها لم تحل المشكلة التالية: من المسؤول عن التأثير الهائل على الأداء؟
من الواضح أنني فاتني أي قضايا مهمة.
بعد التفكير في الأمر مرة أخرى ، أدركت أنني فاتني جزءًا مهمًا من العلاج غير الطبيعي. لم أفكر في ما فعلته عندما حدثت تشوهات. في معظم الحالات ، من المحتمل أنك ليس فقط لالتقاط تشوهات! المشكلة هنا: بشكل عام ، ستحاول استكمال المشكلة والسماح للتطبيق لا يزال يلعب مع المستخدم النهائي. إذن ما فاتني هو: "" "" الكود التكميلي "" للتعامل مع التشوهات. اعتمادًا على الكود المختلفة ، قد يصبح فقدان الأداء كبيرًا. في بعض الحالات ، قد يعني هذا التركيز على الاتصال بالخادم ، وفي حالات أخرى ، قد يعني استخدام حل التراجع الافتراضي ، وسيؤدي الحل الذي يوفره هذا الحل بالتأكيد إلى أداء سيء للغاية. يبدو أن هذا يعطي تفسيرًا جيدًا للسلوك الذي نراه في كثير من الحالات.
ومع ذلك ، لا أعتقد أن التحليل هو كل شيء هنا ، لكنني أشعر أن شيئًا آخر قد فاته هنا.
تتبع المكدس
ما زلت أشعر بالفضول تجاه هذه المشكلة ، ولهذا السبب ، راقبت كيف يتغير الأداء عند جمع تتبع Strack.
هذه هي الحالة التي تحدث في كثير من الأحيان: لكتابة المسار غير الطبيعي ومسار المكدس ، حاول معرفة مكان المشكلة.
لهذا السبب ، قمت بتعديل الكود وجمعت تتبع strack غير الطبيعي. هذا قد غير الموقف بشكل كبير. تأثير الأداء على جمع تتبع Strack غير الطبيعي أعلى 10 مرات من مجرد التقاط ورمي الشذوذ. لذلك ، على الرغم من أن Track Trace يساعد في فهم مكان حدوث المشكلات (قد يساعد في فهم سبب حدوث المشكلات) ، إلا أن هناك خسائر في الأداء. نظرًا لأننا لا نتحدث عن تتبع Strack ، فإن التأثير هنا غالبًا ما يكون رائعًا جدًا. في معظم الحالات ، يجب أن نرمي ونزول تشوهات على مستويات متعددة. دعونا نلقي نظرة على مثال بسيط: يتم توصيل عميل خدمة الويب بالخادم. بادئ ذي بدء ، هناك خلل في مستوى مكتبة جافا. منذ ذلك الحين ، سيكون هناك عملاء غير طبيعيين على مستوى الإطار ، وقد تكون هناك مكالمات منطقية تجارية غير طبيعية على مستوى التطبيق في المستقبل. حتى الآن ، يجب جمع ما مجموعه ثلاثة آثار Strack. في معظم الحالات ، يمكنك رؤية Track Trace من ملفات السجل أو إخراج التطبيق ، وكتابة تتبع Strack الطويل هذا غالبًا ما يكون له أيضًا تأثيرات أداء.
ختاماً
بادئ ذي بدء ، ليس من الجيد تجاهل تشوهات غير طبيعية بسبب تأثير الأداء. يساعد غير عادي على توفير طريقة متسقة لحل مشاكل التشغيل والمساعدة في كتابة التعليمات البرمجية النظيفة. ولكن يجب أن نتتبع الكمية غير الطبيعية التي تم إلقاؤها في الكود ، والتي قد تسبب تأثيرات كبيرة في الأداء. لذلك ، يتعين على ONEEPM تتبع التشوهات التي تم إلقاؤها افتراضيًا -في كثير من الحالات ، سوف يفاجأ الناس من التشوهات في الكود وفقدان الأداء عند حل هذه التشوهات. ثانياً ، على الرغم من أنها مفيدة للغاية للاستخدام ، يجب عليك أيضًا تجنب التقاط الكثير من تتبع Strack. يجب تصميم التشوهات لظروف غير طبيعية ، ويجب وضع هذا المبدأ في الاعتبار عند استخدامه. بالطبع ، في حال كنت لا ترغب في اتباع عادات البرمجة الجيدة ، فإن لغة Java ستعلمك أن القيام بذلك يمكن أن يجعل برنامجك يعمل بشكل أسرع ويشجعك على القيام بذلك.
ما سبق هو كل محتويات هذه المقالة.