سؤال

ولقد وجدت هذا في بعض رمز الدخول الانتاج كنت أبحث في الآونة الأخيرة ...

HttpContext.Current.Trace.Write(query + ": " + username + ", " + password));

... حيث الاستعلام استعلام SQL قصيرة للاستيلاء على المستخدمين مطابقة. فهل في هذا أي نوع من تأثير الأداء؟ أفترض لها صغيرة جدا.

وأيضا، ما هو الغرض من هذا النوع الدقيق للأثر، وذلك باستخدام السياق HTTP؟ أين هذه البيانات الحصول على تعزى إلى؟ ويرجع الفضل في ذلك مسبقا!

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

المحلول

ونعم سيكون له تأثير الأداء كلما يتم تعريف TRACE مشروط ثابت ترجمة أثناء البناء. القيام بأي شيء لديه بعض نوع من التأثير:)

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

ولكن كما هو الحال دائما، لا تثق بي، والثقة في التعريف.

نصائح أخرى

وليس لدي نقاط سمعة تعليقات حتى الآن ولكن أردت أن يدلي ببيان سريع عن الجواب جوناثان. يبدو أن الأرقام التي رأيتها لإظهار أنه لا معنى لاستخدام ب StringBuilder لمجرد حفنة من تسلسالت السلسلة. النفقات العامة من إنشاء الكائن ب StringBuilder تفوق فائدة سرعة سلسلة.

وومعظم فقدان الأداء في هذه القطعة من التعليمات البرمجية ليست في التتبع، ولكن في سلسلة سلسلة من خلال استخدام + المشغل. هذا لا بعض عمليات الذاكرة غير الفعالة التي يمكن أن تغلب عملية IO من حيث الأداء. فما استقاموا لكم فاستقيموا تغييره إلى استخدام شيء من هذا القبيل string.Concat أو فئة ب StringBuilder (أو string.Format لهذه المسألة).

والرسائل تتبع يمكن أن تذهب إلى الكثير من أماكن مختلفة. يمكنك إضافة (أو إزالة) TraceListeners عن وحدة التحكم، VisualStudio إطار التصحيح، الملفات، أو سجل الأحداث على سبيل المثال لا الحصر. يمكنك بناء حتى بنفسك.

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

وهكذا، فإن تأثير الأداء باستخدام تتبع يمكن أن تختلف بعنف، على طول الطريق من الصفر إلى التعثر تماما أسفل التطبيق، وهذا يتوقف على ما هي المستمعين نشط. معظم المستمعين، على الرغم من أن يكون حول تأثير كنت تتوقع. يستغرق حوالي الكثير من العمل لكتابة إلى ملف أو قاعدة بيانات، أو وحدة التحكم، وتعقبها لا تضيف أن الكثير من قريب العامة لتلك الأنشطة / I ملزمة-O.

وإذا أثر والكتابة إلى ملف نصي سيكلف أكثر من الكتابة لتعزية IMHO

و"للبحث عن المفقودين يضيف مقدار حمل إضافي للطلبات ويجب عدم تمكين التطبيقات نشرها. Trace.Write () البيانات، ومع ذلك، يمكن أن تترك في أنه يتم تجاهلها عندما لم يتم تمكين البحث عن المفقودين."

http://msdn.microsoft.com/en-us/library/ ms972204.aspx

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

ومجرد تخمين ... أنا لم قياس أي شيء حتى الآن. سيتم تحديث إذا كنت تفعل.

على 2017 تحديث : في ويبدو أن لإهمال ولكن طريقة سهلة جدا لتعقب / تسجيل المعلومات إلى المتصفح / عن بعد صفحة. aspx يمكن الوصول إليها في تطبيق asp.net.

https://msdn.microsoft. كوم / EN-IN / مكتبة / z48bew18 (ت = vs.71) .aspx اتصال

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