2009-07-23 11 views
0

Gibt es in .Net eingebaute Mechanismen, die es uns erlauben würden, zwei Programme, A und B, zu schreiben. A ist ein Prozess mit speziellen Haken, an den sich B anheftet. Dies würde es B ermöglichen, alle Informationen zu sammeln, die diese Hooks zur Verfügung stellen.Verbindung zu einem anderen Prozess herstellen, um Profilinformationen zu sammeln?

Insbesondere wäre es schön, sich in einen anderen unserer Prozesse einzuklinken und solche Metriken zu sammeln, wie oft eine Funktion in den letzten X Minuten aufgerufen wurde, die durchschnittliche Lauflänge, wie viele Elemente sich darin befinden oder dieser Cache usw.

Antwort

2

Sie könnte schreiben Sie eine Anwendung mit der .NET Profiling API. Oder Sie könnte verwenden Protokollierung, durch Laufzeitoptionen, Konfigurationsdateien oder Registrierungseinstellungen für wie ausführlich Ihre Protokolle gesteuert werden. Oder Sie können eine Menge Geld für bestehende kommerzielle Profiling-Lösungen bezahlen.

Sie könnte auch MSMQ anstelle der Protokollierung verwenden.

0

Es hängt davon ab, was Sie tun möchten. Viele der von Ihnen beschriebenen Metriken können mit einem Profiler in Ihrem Debugger erfasst werden (Sie müssten also weder Programm B schreiben noch Programm A in irgendeiner Weise ändern). Sie können eine Nachrichtenschnittstelle (z. B. mit Sockets) implementieren, die es Programm B ermöglicht, Informationen von Programm A anzufordern. Programm A könnte einen Hintergrundthread bereitstellen, um diese Informationen bereitzustellen, so dass es immer dann antworten kann, wenn eine Anfrage gestellt wird Mit welcher anderen Arbeit könnte es beschäftigt sein?

Verwandte Themen