Frage

Kennt jemand eine Methode zum Erstellen benutzerdefinierter Leistungsindikatoren mit gewöhnlichem, nicht verwaltetem Visual C++?

Ich weiß, dass dies mit verwaltetem C++ problemlos möglich ist, aber ich muss es mit einem nicht verwalteten Windows-Dienst tun.

Ich weiß auch, dass Sie Leistungsindikatordaten abrufen können, aber ich muss einige benutzerdefinierte Zähler erstellen und diese während der Anwendungslaufzeit erhöhen.

War es hilfreich?

Lösung

Siehe hier: http://msdn.microsoft.com/en-us/library/aa371925.aspx

Es ist nicht wirklich schwer, aber ein bisschen langweilig wie die API beinhaltet umfangreiche Nutzung von selbstreferentiell, mit variabler Länge Strukturen und hat einig IPC-Mechanismus verwenden, um die Daten aus dem überwachten Prozess zu erhalten.

Andere Tipps

Die Unterstützung für das Hinzufügen von C ++ Leistungsindikatoren in Vista geändert und darüber hinaus. Der Performance-DLL Ansatz vorgeschlagen, in einer anderen Antwort immer noch funktioniert, aber die neue Technik beschrieben hier ist einfacher zu bedienen.

In diesem Ansatz schreiben Sie ein Manifest, dass Ihre Zähler beschreibt, führen CTRPP, ein Tool, das Code von Ihrem Manifest erzeugt. Kompilieren und verknüpfen Sie diesen Code mit Ihrer Anwendung, und fügen Sie einen Aufruf, den Prozess zu initialisieren (es startet einen Hintergrund-Thread), und fügen Sie Code, um die Zähler bei Bedarf zu aktualisieren. Die Einzelheiten der Zähler die Veröffentlichung durch den Hintergrund-Thread behandelt werden, um den generierten Code ausgeführt wird.

Sie müssen auch laufen lodctr / m: [Manifest-Datei] Ihre Zähler zu registrieren, bevor sie verwendet werden können. Dies muss als Administrator ausgeführt werden.

BTW:. Ein weiteres Programm, unlodctr die Wirkung von lodctr umkehren und muss verwendet werden, wenn Sie Änderungen an Ihrem Zähler zu machen, weil es keine „ersetzen“ Betrieb ist, nur die alte löschen und dann die neue installieren

Dokumentation für alle oben ist einfach nur schrecklich. Zum Beispiel wurde lodctr vollständig für Vista überarbeitet, aber die Doc in MSDN ist alles für die XP-Version und nicht mehr gilt. Wenn Sie MSDN besuchen benutzen Sie bitte den Button „Diese Dokumentation ist nicht hilfreich“ großzügig und vielleicht wird Microsoft die Nachricht.

Sie die ATL-Performance-Monitor-Klassen nicht verwenden. Ich weiß, sie sind leicht zu addieren und sie verfügen über einen Assistenten und alle, aber sie hoffnungslos abgehört werden. Ich habe sie zu einem meiner Entwicklung Anwendungen bei der Arbeit, hatte dann durch zu gehen und den Code aus 6 Monaten später zu reißen. Alles ist verloren in all ca. 3 Wochen Arbeit an den Lärm.

Ich war auf der Suche nach etwas einem litte einfacher zu implementieren. Wahrscheinlich werde ich diesen Ansatz verwenden. Ich war auch von einem Kollegen (danke PJ) gezeigt, dass es ein Scribble-Tutorial, das modifiziert wurde, um zu zeigen, wie ein Leistungsindikatoren mit ATL-Klassen hinzuzufügen: PerformanceScribble Beispiel: Performance Monitoring in einer MFC-Anwendung

Der große Nachteil hierbei ist, dass zur Zeit meine Anwendung nicht MFC oder ATL nicht verwendet, und ich würde die Unterstützung für sie hinzufügen muß.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top