سؤال

ما هي ملفات التعريف التي استخدمتها عند العمل مع برامج .net، وأي منها ستوصي بها بشكل خاص؟

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

المحلول

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

يتكامل dotTrace مع Resharper، وهو أمر مريح حقًا، حيث يمكنك تحديد أداء اختبار الوحدة بنقرة واحدة من IDE.ومع ذلك، يبدو أن dotTrace غالبًا ما يعطي نتائج زائفة (على سبيل المثال.قائلًا إن الطريقة استغرقت عدة سنوات للتشغيل)

أفضّل الطريقة التي يعرض بها ANTS نتائج التوصيف.يعرض لك الكود المصدري وعلى يسار كل سطر يخبرك بالمدة التي استغرقها التشغيل.يحتوي dotTrace على طريقة عرض الشجرة فقط.

ملف تعريف EQATEC يعد أمرًا أساسيًا تمامًا ويتطلب منك تجميع إصدارات مُجهزة خاصة من مجموعاتك والتي يمكن بعد ذلك تشغيلها في ملف تعريف EQATEC.ومع ذلك فهو مجاني.

بشكل عام، أفضّل ANTS لتحديد مواصفات الأداء، على الرغم من أنه إذا كنت تستخدم Resharper، فإن تكامل dotTrace يعد ميزة قاتلة ويعني أنه يتفوق على ANTS في سهولة الاستخدام.

ملف تعريف Microsoft CLR المجاني (صافي الإطار 2.0 / صافي الإطار 4.0) هو كل ما تحتاجه لإنشاء ملفات تعريف ذاكرة .NET.

تحديث 2011:

ال ملف تعريف الذاكرة Scitech يحتوي على واجهة مستخدم أساسية تمامًا ولكنه يحتوي على الكثير من المعلومات المفيدة، بما في ذلك بعض المعلومات حول الذاكرة غير المُدارة التي يفتقر إليها dotTrace وANTS - قد تجدها مفيدة إذا كنت تقوم بالتشغيل المتداخل لـ COM، ولكن لم أجد بعد أي ملف تعريف يجعل من السهل حل مشكلات ذاكرة COM التشخيص - عادة ما يتعين عليك الخروج windbg.exe.

لقد تطور ملف تعريف ANTS بسرعة كبيرة في السنوات القليلة الماضية، ويحتوي ملف تعريف الذاكرة الخاص به على بعض الميزات المفيدة حقًا والتي دفعته الآن إلى صدارة dotTrace كحزمة في تقديري.أنا محظوظ بما فيه الكفاية لأن لدي تراخيص لكليهما، ولكن إذا كنت ستشتري واحدًا من ملفات تعريف .Net لكل من الأداء والذاكرة، فاجعله ANTS.

نصائح أخرى

قام آخرون بتغطية ملفات تعريف الأداء، ولكن فيما يتعلق بملفات تعريف الذاكرة أقوم حاليًا بتقييم كل من Scitech .NET Memory Profiler 3.1 وANTS Memory Profiler 5.1 (الإصدارات الحالية اعتبارًا من سبتمبر 2009).لقد جربت JetBrains منذ عام أو عامين ولم تكن جيدة مثل ANTS (لتنميط الذاكرة) لذا لم أزعج نفسي هذه المرة.من قراءة مواقع الويب يبدو أنه ليس لديه نفس الشيء ملفات تعريف الذاكرة ميزات مثل الاثنين الآخرين.

يحتوي كل من ANTS وملف تعريف الذاكرة Scitech على ميزات لا يمتلكها الآخر، لذا فإن الخيار الأفضل سيعتمد على تفضيلاتك.بشكل عام، يوفر جهاز Scitech معلومات أكثر تفصيلاً في حين أن جهاز ANTS لا يصدق حقًا في تحديد الجسم المتسرب.بشكل عام، أفضّل جهاز ANTS لأنه سريع جدًا في تحديد التسريبات المحتملة.

فيما يلي أهم إيجابيات وسلبيات كل منها من تجربتي:

الميزات المشتركة لـ ANTS وScitech .NET Memory Profiler

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

النمل

  • مرشحات بنقرة واحدة للعثور على التسريبات الشائعة مشتمل:الكائنات التي يتم الاحتفاظ بها على قيد الحياة فقط بواسطة معالجات الأحداث، والكائنات التي تم التخلص منها ولكنها لا تزال حية والكائنات التي يتم الاحتفاظ بها على قيد الحياة فقط من خلال مرجع من كائن تم التخلص منه.ربما تكون هذه هي الميزة القاتلة لـ ANTS - حيث أن العثور على التسريبات سريع بشكل لا يصدق بسبب هذا.في تجربتي، فإن غالبية التسريبات ناتجة عن عدم فك معالجات الأحداث ويقوم ANTS بنقلك مباشرة إلى هذه الكائنات.مذهل.
  • الرسم البياني للاحتفاظ بالكائن.على الرغم من أن نفس المعلومات متوفرة في Scitech، إلا أنه من الأسهل تفسيرها في ANTS.
  • يُظهر الحجم مع الأطفال بالإضافة إلى حجم الكائن نفسه (ولكن فقط عند تحديد مثيل لسوء الحظ، وليس في قائمة الفئات الشاملة).
  • تكامل أفضل مع Visual Studio (انقر بزر الماوس الأيمن على الرسم البياني للانتقال إلى الملف)

Scitech .NET منشئ ملفات تعريف الذاكرة

  • يظهر تتبع المكدس عندما تم تخصيص الكائن.هذا هو حقًا مفيد للكائنات المخصصة في العديد من الأماكن المختلفة.مع ANTS، من الصعب تحديد المكان الذي تم فيه إنشاء الكائن المسرب بالضبط.
  • يُظهر عدد الأشياء التي يمكن التخلص منها والتي لم يتم التخلص منها.على الرغم من أنه لا يشير إلى حدوث تسرب، إلا أنه يحدد الفرص المتاحة لإصلاح هذه المشكلة وتحسين أداء التطبيق الخاص بك نتيجة لجمع البيانات المهملة بشكل أسرع.
  • خيارات تصفية أكثر تفصيلاً (يمكن تصفية عدة أعمدة بشكل مستقل).
  • يقدم معلومات عن إجمالي الكائنات التي تم إنشاؤها (بما في ذلك تلك التي تم جمعها القمامة).يعرض ANTS إحصائيات الكائن "المباشر" فقط.وهذا يجعل من السهل تحليل وضبط الأداء العام للتطبيق (على سبيل المثال.تحديد مكان إنشاء الكثير من الكائنات دون داع والتي لا تتسرب بالضرورة).

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

لقد اكتشفت مؤخرًا ملف تعريف EQATEC http://www.eqatec.com/tools/profiler.إنه يعمل مع معظم إصدارات .NET وعلى مجموعة من الأنظمة الأساسية.إنه سهل الاستخدام وأجزاء منه مجانية، حتى للاستخدام التجاري.

[الكشف الكامل]

على الرغم من أنها ليست كاملة الميزات حتى الآن مثل بعض ملفات تعريف ذاكرة .NET الأخرى المدرجة هنا، إلا أن هناك إدخالًا جديدًا في السوق يسمى JustTrace.تم تصنيعه بواسطة Telerik وهدفه الأساسي هو جعل التتبع/التوصيف أسهل وأسرع لجميع أنواع التطبيقات (الويب/Silverlight/سطح المكتب).

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

لا تنسى البروفيسور - ملف تعريف جيد جدًا ومجاني.

لقد وجدت ملف التعريف dotTrace بواسطة جيت براينز أن تكون أداة إنشاء ملفات تعريف ممتازة لـ .NET وأن وضع ASP.NET الخاص بها يتميز بالجودة.

ملف تعريف النمل.لم أستخدم الكثير منها، لكن ليس لدي أي شكوى بشأن النمل.التصور مفيد حقا.

الآلي QA AQTime للتوقيت و SciTech MemProfiler للذاكرة.

إذا كنت تبحث عن شيء سريع وسهل ومجاني، http://code.google.com/p/slimtune/ يبدو أنه يقوم بالمهمة بشكل جيد.

لقد كنت أعمل مع JetBrains dotTrace لتطبيقات WinForms وConsole (لم يتم اختبارها على ASP.net بعد)، وهي تعمل بشكل جيد:

لقد أضافوا مؤخرًا أيضًا "ترخيصًا شخصيًا" أرخص بكثير من ترخيص الشركة.ومع ذلك، إذا كان أي شخص آخر يعرف بعضًا منها الأرخص أو حتى المجانية، أود أن أسمع أيضًا :-)

لا ننسى scitech رهيبة .net منشئ ملفات تعريف الذاكرة

إنه أمر رائع لتتبع سبب نفاد ذاكرة تطبيق .net الخاص بك.

أود أن أضيف قدرة dotTrace على ذلك فرق الذاكرة وجلسات تتبع الأداء لا تقدر بثمن على الإطلاق (قد يكون لدى ANTS أيضًا ميزة اختلاف الذاكرة، لكنني لم أر فرقًا في الأداء).

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

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

الحد الأدنى:يعمل dotTrace بشكل رائع، والفرق لا يقدر بثمن.

وقتي معقول، ولكنه يحتوي على منحنى تعليمي قليل وليس سهل الاستخدام مثل البرنامج المدمج في Team Suite

في الماضي، استخدمت ملف التعريف الذي يأتي معه نظام فريق الاستوديو المرئي.

الإصدار الحالي من تطوير حاد (3.1.1) لديه ملف تعريف متكامل لطيف.إنه سريع جدًا، ويتكامل جيدًا مع SharpDevelop IDE ومشغل NUnit الخاص به.يتم عرض النتائج بأسلوب شجرة/قائمة مرنة (استخدم LINQ لإنشاء التحديد الخاص بك).يؤدي النقر المزدوج على الطريقة المعروضة إلى الانتقال مباشرة إلى الكود المصدري.

لقد عملت مع ملف تعريف RedGate في الماضي.هل هذه المهمة بالنسبة لي.

لم أحاول ذلك بنفسي، ولكن ربما com.dotTrace؟يعد تطبيق ReSharper الخاص بهم بالتأكيد تطبيقًا جيدًا.ربما يكون dotTrace أيضًا :)

أشك في أن ملف التعريف الذي يأتي مع Visual Studio Team System هو أفضل ملف تعريف، لكنني وجدته جيدًا بما فيه الكفاية في العديد من المناسبات.ما الذي تحتاجه على وجه التحديد بخلاف ما تقدمه VS؟

يحرر:لسوء الحظ، فهو متاح فقط في VS Team System، ولكن إذا كان لديك إمكانية الوصول إليه، فهو يستحق التحقق منه.

أحدث إصدار من ملف تعريف ذاكرة ANTS (أعتقد أنه 5) رائع بكل بساطة!!!كنت أطارد تسربًا باستخدام WinDbg وSOS لأنه أثبت أنه أفضل طريقة من قبل، ثم جربت ANTS وحصلت عليه في دقائق.حقا قطعة رائعة من البرمجيات.

وأود أن أضيف yourkit ملف تعريف Java و.net، أحبه لـ Java، ولم أجرب إصدار .NET بالرغم من ذلك.

من المؤسف أن معظم ملفات التعريف التي جربتها باءت بالفشل عند استخدامها مع المكالمات الخلفية، وأبرزها ANTS.لقد انتهى بي الأمر بكتابة كتابتي الخاصة.يوجد تطبيق بسيط على CodeProject يمكنك استخدامه كقاعدة.

محلل أداء Intel® VTune™ لأخذ العينات السريعة

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

شكرا جيمس

بالنسبة لي، تعد SpeedTrace أفضل أداة في السوق لأنها لا تساعدك فقط في العثور على الاختناقات داخل تطبيقاتك.كما أنه يساعدك في سيناريوهات استكشاف الأخطاء وإصلاحها لمعرفة سبب تعطل تطبيقك، أو عدم تثبيت الإعداد، أو تعليق تطبيقك، أو أن أداء تطبيقك ضعيف في بعض الأحيان اعتمادًا على إدخال البيانات، على سبيل المثال.لتحديد معاملات قاعدة البيانات البطيئة.

لقد قمت باختبار JustTrace من Telerik مؤخرًا وعلى الرغم من أنه بعيد جدًا عن المنتج النهائي، إلا أن الرجال يسيرون في الاتجاه الصحيح.

إذا كان الترخيص يمثل مشكلة، فيمكنك تجربة WINDBG لتوصيف الذاكرة

يوجد ملف التعريف NuMega True Time في DevPartner Studio بواسطة Micro Focus.فهو يوفر تفاصيل على مستوى الخط والطريقة لتطبيقات .NET التي تتطلب فقط PDBs، ولا حاجة إلى مصدر (لكنه يساعد.) ويمكنه التمييز بين الإجراءات الثقيلة خوارزميًا مقابل تلك التي تتطلب فترات انتظار طويلة للإدخال/الإخراج باستخدام برنامج تشغيل توقيت وضع kernel الخاص بنا لكل مؤشر ترابط.يأتي الإصدار 10.5 مزودًا بدعم 64 عملية جديدة في 4 فبراير 2011.المكونات وقح:أنا أعمل على خط إنتاج DevPartner.متابعة في http://www.DevPartner.com للحصول على أخبار إطلاق 10.5.

تنصل:أنا مدير المنتج لـ DevPartner في Micro Focus.

لقد وجدت الكثير من المشاكل في تطبيق C# كبير يستخدم هذا.

عادةً ما تحدث المشكلة أثناء بدء التشغيل أو إيقاف التشغيل أثناء تحميل المكونات الإضافية وإنشاء هياكل البيانات الضخمة أو تدميرها أو إجراء تسلسل لها أو إلغاء تسلسلها.غالبًا ما يتم إنشاؤها وتهيئتها أكثر من مرة، وتتم إضافة معالجات التغيير عدة مرات، مما يزيد من تفاقم المشكلة.

في مثل هذه الحالات، يمكن أن يكون البرنامج بطيئًا جدًا لدرجة أن عينتين فقط تكفيان لتحديد مواقع استدعاء الطريقة/الوظيفة/الخاصية المذنبة.

لقد اخترنا YourKit Profiler لـ .NET في شركتي لأنه كان أفضل قيمة (السعر مقابل السعر).ميزة).بالنسبة لشركة صغيرة ترغب في الحصول على ترخيص مرن (تراخيص عائمة)، كان ذلك خيارًا مثاليًا - كان ANTS عبارة عن مدلاة مقعد المطور في ذلك الوقت.

كما أنها زودتنا بالقدرة على الارتباط بعملية التشغيل وهو ما لم يكن ممكنًا مع dotTrace.احذر من أن الإرفاق ليس هو الخيار الأفضل حيث أن كل شيء في .NET سوف يتباطأ، ولكن هذه كانت الطريقة الوحيدة لتعريف تطبيقات .NET التي بدأت من خلال عمليات أخرى.من حيث الميزات، كان ANTS وdotTrace أفضل - ولكن في النهاية كان YourKit جيدًا بما فيه الكفاية.

إذا كنت تستخدم ASP.NET MVC، فيمكنك تجربة MVCMiniProfiler (http://benjii.me/2011/07/using-the-mvc-mini-profiler-with-entity-framework/)

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