Wednesday 25 January 2017

Cpu Gleitender Durchschnitt

Durchschnittliche CPU-Zyklen: Überprüfen Sie die durchschnittliche CPU-Auslastung für jeden Windows-Prozess Die durchschnittliche CPU-Auslastung einer Anwendung kann von der aktuellen CPU-Nutzung abweichen. Dies ist so, weil eine Anwendung die CPU-Auslastung abhängig von ihrer maximalen Nutzungszeit erhöhen oder verringern kann. Zum Beispiel erhöhen Browser den Ressourcenverbrauch, wenn neue Registerkarten geöffnet werden. Während die aktuelle CPU-Auslastung aus dem Task-Manager beurteilt werden kann, kann die Überwachung der durchschnittlichen CPU-Auslastung eines Prozesses schwierig sein. Durchschnittliche CPU-Zyklen ist eine tragbare Anwendung, die die aktuelle und durchschnittliche CPU-Auslastung für einen ausgewählten Prozess anzeigt. Das Programm misst die CPU-Auslastung für bestimmte Programme von ihrer Startzeit bis zur aktuellen Uhrzeit oder durch Auslösen der Berechnung zu einem ausgewählten Zeitpunkt. Beispielsweise können Sie diese durch Starten der CPU-Nutzungsberechnung während der Spitzenzeit, der Leerlaufzeit oder der allgemeinen Verwendung ausführen, um zu sehen, wie viel CPU während der maximalen, minimalen oder normalen Anwendungsnutzung verwendet wird. Windows Vista und 7 verwenden die kernel32.dll-Funktion QueryProcessCycleTime, um kleinere CPU-Bursts mit anderen häufiger verwendeten Methoden zu messen. Es macht auch die Messungen weniger abhängig von der aktuellen CPU-Frequenz, wenn Ihr System Prozessor-Frequenz-Skalierung Throttling verwendet. Durchschnittliche CPU-Zyklen, verwendet diesen Mechanismus, damit Benutzer die CPU-Auslastung eines Prozesses berechnen können. Um zu beginnen, klicken Sie auf Prozess-Taste und wählen Sie einen Prozess zu überwachen. Sobald ein Prozess ausgewählt ist, klicken Sie auf Process Start (um den Prozess von der Startzeit bis zur aktuellen Uhrzeit zu überwachen) oder von Now (um die CPU-Nutzung nur von der aktuellen Uhrzeit aus zu starten). Der Schieberegler auf der Hauptschnittstelle ermöglicht das Auswählen des Zeitintervalls, nach dem die CPU-Auslastung gemessen wird. Mit dem Zeitintervall auf eine niedrigere Ebene können Sie die CPU-Auslastung genauer berechnen. Standardmäßig ist dieser Schieberegler auf ein Zeitintervall von 1 Sekunde eingestellt. Durchschnittliche CPU-Zyklen liefert kontinuierliche Informationen für den ausgewählten Prozess, bis er geschlossen ist. Die Hauptschnittstelle zeigt eine Fortschrittsleiste mit numerischen Daten bezüglich der durchschnittlichen CPU-Auslastung, des verwendeten MHz, der Gesamt-CPU-Zyklen, des durchschnittlichen MHz-Werts und der aktuellen Last an. Durchschnittliche CPU-Zyklen funktioniert unter Windows XP, Windows Vista und Windows 7. Das Paket für Windows XP ist separat erhältlich, da die CPU-Berechnungsvorgang in XP unterscheidet sich von Vista und 7. Die CPU tut nicht die Nutzung Berechnungen von selbst. Es kann Hardware-Funktionen, um diese Aufgabe zu erleichtern, aber seine meist die Aufgabe des Betriebssystems. So offensichtlich die Details der Implementierungen variieren (vor allem im Fall von Multicore-Systemen). Die allgemeine Idee ist zu sehen, wie lange ist die Schlange der Dinge, die die CPU zu tun hat. Das Betriebssystem kann einen Blick auf die Scheduler in regelmäßigen Abständen zu bestimmen, die Menge der Dinge, die sie zu tun hat. Was den zweiten Teil Ihrer Frage betrifft, sind die meisten modernen Betriebssysteme multi-tasked. Das heißt, das OS wird nicht zu lassen, Programme nehmen alle die Bearbeitungszeit und nicht für sich selbst haben (es sei denn, Sie machen es tun). Mit anderen Worten, auch wenn eine Anwendung hängt, kann das Betriebssystem immer noch einige Zeit weg für seine eigene Arbeit zu stehlen. Um CPU-Auslastung zu erhalten, in regelmäßigen Abständen die gesamte Prozess-Zeit, und finden Sie den Unterschied. Zum Beispiel, wenn dies die CPU-Zeiten für Prozess 1 sind: Und dann erhalten Sie sie wieder zwei Sekunden später, und sie sind: Sie subtrahieren die Kernel-Zeiten (für eine Differenz von 0,03) und die Benutzer-Zeiten (0,61), fügen sie zusammen (0,64) und dividiert durch die Abtastzeit von 2 Sekunden (0,32). Also in den letzten zwei Sekunden verwendet der Prozess durchschnittlich 32 CPU-Zeit. Die spezifischen Systemaufrufe benötigt, um diese Informationen sind (natürlich) unterschiedlich auf jeder Plattform. Unter Windows können Sie GetProcessTimes verwenden. Oder GetSystemTimes, wenn Sie eine Verknüpfung zu insgesamt verwendet oder im Leerlauf CPU-Zeit möchten. Antwort # 2 am: September 20, 2010, um 1:38 Uhr Eine Möglichkeit, es zu tun, ist wie folgt: Wählen Sie ein Stichprobenintervall, sagen alle 5 min (300 Sekunden) der realen verstrichenen Zeit. Sie erhalten diese von gettimeofday. Holen Sie sich die Prozesszeit youve verwendet, dass in 300 Sekunden. Sie können den time () - Aufruf verwenden, um diesen zu erhalten. Das wäre die newprocesstime - oldprocesstime. Wobei oldprocesstime die Prozesszeit ist, die Sie aus dem letzten Zeitintervall gespeichert haben. Ihr CPU-Prozentsatz ist dann (processtime Elapsedtime) 100.0 Sie können einen Alarm zu signalisieren, dass Sie alle 300 Sekunden, um diese Berechnungen zu machen. Ich habe einen Prozess, den ich nicht mehr als einen bestimmten Zielcpu-Prozentsatz verwenden möchte. Diese Methode funktioniert ziemlich gut und stimmt gut mit meinem Systemmonitor überein. Wenn wir zuviel CPU einsetzen, schlafen wir ein wenig. Antwort # 1 am: Oktober 12, um 21:18 Nun, soweit ich es verstehen, gibt es eine riesige Schleife, dass die Betriebssysteme spinnt. Ihr Prozess wird von dieser Schleife aus verwaltet. Es erlaubt externen Code direkt auf dem Prozessor in Stücke ausgeführt werden. Ohne zu viel zu übertreiben, ist dies eine Uber-Vereinfachung dessen, was tatsächlich vor sich geht. Beantwortet September 20 10 at 1:24 Dies ist mein grundlegendes Verständnis von mit ein wenig Exposition gegenüber ähnlichen Code. Programme wie Task-Manager oder Ihr Widget-Zugriffssystem rufen wie NtQuerySystemInformation () und verwenden die Informationen aus dem Betriebssystem zu machen, die einfache Berechnung der Prozent der Zeit eine CPU im Leerlauf oder verwendet wird (in einer Standard-Zeit). Eine CPU weiß, wann sie im Leerlauf ist, so dass sie daher bestimmen kann, wann sie nicht im Leerlauf ist. Diese Programme können in der Tat verstopft werden. Meine crummy Laptops Task-Manager friert die ganze Zeit bei der Berechnung der CPU-Auslastung, wenn seine Richtfest auf 100. Ein kühles Bit von Beispielcode finden Sie auf MSDNs Website, die Funktionsaufforderungen für die Berechnung der CPU-Auslastung für eine Reihe von Anweisungen zeigt: msdn. microsoft de - us Bibliothek aa364157 (VS.85).aspx Was diese Systemaufrufe tun, ist Zugriff Kernel-Code glaube ich. Was über den Rahmen meines Verständnisses hinausgeht. Antwort # 2 am: August 20, 2010, um 1:28 Uhr Es gibt eine Reihe von Möglichkeiten, wie Sie es tun können: Prozessor pflegt mehrere Zähler, die Leistung zu messen, können Sie sie über Papi-Schnittstelle zugreifen. Zum Beispiel hier ist eine kurze Einführung: blogs. oracle jonh entry performancecountergenericevents der Zähler, den Sie wollen, ist PAPITOTCYC, die Anzahl der belegten Zyklen ist (wenn ich mich richtig erinnere) beantwortet September 20 10 at 1:22 Ihre Antwort 2016 Stack Exchange, Inc


No comments:

Post a Comment