سؤال

هل يعرف أحد طريقة لخلق العرف عدادات الأداء باستخدام العادية غير المدارة Visual C++?

وأنا أعلم أنه يمكن القيام به بسهولة باستخدام C++ مدارة, ولكن أنا بحاجة إلى أن تفعل ذلك باستخدام غير مدارة خدمة Windows.

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

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

المحلول

انظر هنا:http://msdn.microsoft.com/en-us/library/aa371925.aspx

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

نصائح أخرى

دعم إضافة C++ عدادات الأداء تغير في ويندوز فيستا وما بعده.الأداء DLL النهج المقترح في جواب آخر لا يزال يعمل ، ولكن تقنية جديدة وصفها هنا هو أسهل للاستخدام.

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

تحتاج أيضا إلى تشغيل lodctr /م:[ملف البيان] تسجيل العدادات الخاصة بك قبل أن يمكن استخدامها.هذا يجب أن يتم تشغيل كمسؤول.

راجع للشغل:برنامج آخر ، unlodctr عكس تأثير lodctr ويجب أن تستخدم إذا قمت بإجراء أية تغييرات على العدادات الخاصة بك لأنه لا يوجد "استبدال" عملية حذف القديم ثم تثبيت الجديد.

<RANT>وثائق كل ما سبق هو مجرد النكراء.على سبيل المثال lodctr كان أعيدت صياغتها بالكامل ل ويندوز فيستا, ولكن الطبيب في MSDN هو كل شيء عن نسخة XP و لم يعد ينطبق.إذا قمت بزيارة موقع MSDN يرجى استخدام "هذه الوثائق ليست مفيدة" زر متحررا وربما مايكروسوفت سوف تحصل على رسالة.</RANT>

لا تستخدم ATL "مراقبة الأداء" الطبقات.أعلم أنها سهلة لإضافة ولديهم المعالج لكن هم ميؤوس تنصتت.أضفت لهم من تطوير التطبيقات في العمل ، ثم كان عليه أن يذهب من خلال ومزق رمز من 6 أشهر في وقت لاحق.جميع في كل شيء حوالي 3 أسابيع عمل خسر أمام هذا الضجيج.

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

العيب الكبير هنا هو أنه في الوقت الراهن بلدي التطبيق لا يستخدم MFC أو ATL ، وأود أن أضيف الدعم.

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