Wie bekomme ich die aktuelle CPU- und RAM-Auslastung in C ++?
ist es möglich, in C++, um die aktuelle CPU und RAM Nutzung? Gibt es eine Plattform-unabhängige Funktion aufrufen?
InformationsquelleAutor der Frage tunnuz | 2009-01-26
Du musst angemeldet sein, um einen Kommentar abzugeben.
Es ist ein open-source-Bibliothek, die diese (und mehr system-info-Kram) über viele Plattformen: SIGAR API
Ich habe es in ziemlich große Projekte und es funktioniert gut (außer in bestimmten Ausnahmefällen, auf OS X etc.)
InformationsquelleAutor der Antwort ididak
Leider diese Dinge die sich stark auf das zugrunde liegende Betriebssystem, so gibt es keine Plattform-unabhängige Anrufe. (Vielleicht gibt es einige wrapper-frameworks, aber ich kenne keine.)
Unter Linux haben, könnten Sie einen Blick auf die getrusage() Funktion aufrufen, unter Windows können Sie GetProcessMemoryInfo() für die RAM-Auslastung. Haben auch Sie einen Blick auf die anderen Funktionen in der Prozess-Status-API von Windows.
InformationsquelleAutor der Antwort Kosi2801
Gibt es nicht eine Plattform-unabhängige Funktion dafür, die ich kenne. WENN Sie planen, um den Gegner in mehreren Versionen von Windows bewusst sein, dass die Umsetzung unterscheidet sich in einigen Versionen. Ich traf dieses problem beim testen einer app unter NT 3.51 zum Beispiel... (archaisch, ich weiß).
Hier ist etwas code, den ich verwendet für die memory-Seite der Dinge. Dies funktioniert nicht über andere Plattformen als windows, und wird nur 0 zurückgeben, wenn Sie kompiliert werden, ohne die WIN32 definieren:
EDIT: ich vergaß zu erwähnen, dieser code teilt und rundet auf die nächste MB, daher die >> 20 alle über dem Platz.
InformationsquelleAutor der Antwort jheriko
Nein, gibt es nicht, nicht in der Norm.
Wenn Sie wirklich brauchen diese Informationen, die Sie haben, um zu schreiben Plattform-spezifische #ganzen IFDEFs oder linken gegen eine library, die es bereitstellt.
InformationsquelleAutor der Antwort HUAGHAGUAH
Linux verwenden /proc/self/status . Mehr Arbeit ist erforderlich, um diese in eine Zahl um. Ich finde dies nützlich, wie es ist wenn, nur zum drucken den Speicherverbrauch direkt auf dem Bildschirm als ein string.
InformationsquelleAutor der Antwort Aaron McDaid
Gibt es keine plattformunabhängige Möglichkeit, dies zu tun. Obwohl für windows können Sie die CPU-Auslastung und-performance-Metriken mithilfe PDH.dll(Performance Data Helper) und die zugehörigen APIs im code.
Hier ist mehr auf, wie es zu benutzen.
InformationsquelleAutor der Antwort Samrat Patil
Nicht direkt.
Aber Sie können eine Bibliothek, die abstracts der OS (wie ass).
Aber das könnte durch ein bisschen schwer, wenn Sie nur wollen, CPU und Speicher.
InformationsquelleAutor der Antwort Martin York
Wenn das immer noch der Fall ist, überprüfen Sie bitte:
http://sourceforge.net/projects/cpp-cpu-monitor/
Es gibt Ihnen ein Beispiel, wie man die CPU-und RAM-Auslastung eines Linux (getestet auf Debian und CentOS) und eine Recht einfache Anleitung, wie zu installieren.
Fühlen Sie sich bitte frei zu Fragen, wenn Sie Fragen zu diesem kleinen Projekt.
InformationsquelleAutor der Antwort Bartosz Pachołek