2016-05-28 4 views
1

Ich versuche, einige DB in Haskell zu machen, und ich möchte einen Weg zu Speicher und CPU-Auslastung im Programm überprüfen.Überprüfen von Speicher und CPU-Auslastung im Haskell-Programm selbst

Ich versuche Schlüsselwörter für die Suche verwenden wie "Haskell Speichernutzung" oder "Haskell Speicherüberprüfung", "Haskell CPU-Auslastung", ..., aber es gibt keine Antwort, die ich (Memory will und CPU-Überprüfung in Haskell-Programm selbst).

Gibt es eine portable Möglichkeit, Speicher und CPU-Auslastung in selbst zu erhalten, während das Programm ausgeführt wird?

Bitte lassen Sie es mich wissen.

Antwort

2

Was SNMP dafür verwenden?

SNMP wird normalerweise zur Remoteüberwachung von Geräten verwendet, aber nichts hindert Sie daran, einen Agenten lokal auszuführen und ihn von Ihrer Haskell-Anwendung aus abzufragen. Auf diese Weise würden Informationen zur CPU- und Speichernutzung von einer separaten Anwendung (dem SNMP-Agenten) gesammelt und von Ihrer Anwendung bei Bedarf angefordert. Um dies zu erreichen, können Sie eines dieser Haskell-Pakete verwenden: snmp oder NetSNMP.

Sie werden wahrscheinlich eine Menge nützlicher Informationen/Anleitungen/Beispiele zur Prozessüberwachung mit SNMP im Internet finden (wenn Sie nicht damit vertraut sind) und sobald Sie sie verstanden haben, implementieren, was Sie in Haskell benötigen Die Verwendung dieser Pakete sollte unkompliziert sein. Außerdem habe ich dieses related question gefunden.

+0

Thx für Ihren neuen Ansatz! Ich werde diese Pakete überprüfen! –

0

Ihre erste Abfrage Satz bereits mich mit vielen Links bieten würde ich folgen empfehlen:

Weitere Informationen in einer Anwendung lange Zeit - einen Blick auf hackage: ekg, blog ocharles: about ekg und ein article des Autors von ekg.

Wenn Sie etwas selbst implementieren wollen, die GHC.Stats API wäre ein Ausgangspunkt

+0

Ich möchte nicht __profil__ machen. Ich möchte Speicherbelegung in __program selbst__ für Programmbefehl überprüfen. GHC.Stats ist GHC-spezifisch, daher ist es __nicht portabel__. Wieder sage ich: "Ich versuche zu suchen, aber ich kann nicht finden, was ich will". –

+0

Nun GHC ist der ausgereifteste und komplett ausgestattete Compiler, aber Sie haben Recht, dass GHC nur eine Implementierung von Haskell ist - wenn Sie eine Auslesung der aktuellen CPU/RAM/Festplatte erhalten wollen, wird dies betriebssystemspezifisch sein, denke ich - aber anders als die Antwort, die ich gab, habe ich keine Kenntnisse von irgendwelchen Bibliotheken, die diesen Job tun würden – epsilonhalbe