Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.051 Beiträge
 
Delphi 12 Athens
 
#4

AW: Auslesen von WMI dauert (zu?) lange

  Alt 12. Mai 2020, 22:43
Zitat:
wbemFlagReturnImmediately and wbemFlagForwardOnly
Mathematik:
Delphi-Quellcode:
$0001 and $0008 = 0 // nichts
$0001 or $0008 = $0009 // Beides

Der Takt hat aber keine Aussagekraft darüber, ob verwendbare Rechenzeiten übrig sind.
Die Zeiten können das aber sagen, unabhängig vom CPU-Takt.

Ein niedriger Takt sagt nur aus, dass schon längere Zeit kaum etwas gerechnet wird,
aber es kann auch aussagen, dass die CPU viel zu sehr ausgelastet ist und wegen Übertemperatur in den Schutzmodus versetzt wurde,
oder ...

Bei diesem PC hier ist es sogar so, dass der aktuell nicht auf "Leistung" optimiert ist, sondern auf Energieverbrauch und Lautstärke. (nur wenn längere Zeit voll ausgelastet, wird hochgetaktet).
Also meistens kann man dem Takt garnicht ansehen, ob und wie hoch die Auslastung ist.

Bei den CPU-Zeiten ist es dagegen recht einfach.
* 4 Kerne haben 400% Rechenzeit
* Wenn also in einer Minute alle Zeiten zusammengerechnet nur 2 Minuten ergeben, ist die CPU somit zu mindestens 50% arbeitslos gewesen. (noch mehr arbeitslos, wenn der Takt noch höher werden kann, aber das ist egal)
* CPUZeiten / Messinterval / AnzahlDerKerne * 100 = Auslastung in Prozenz
* (CPUZeitenJetzt - CPUZeitenLetztesInterval) / (ZeitJetzt - ZeitLetzteMessung) / AnzahlDerKerne * 100 = Auslastung in Prozenz

Diese Berechnung hilft aber nur, wenn man multithreaded arbeitet.
Bei Single-Thread könnte man statt der Zeiten aller Kerne nur den Kern mit der meisten Rechenzeit nehmen, bzw. die freien Zeiten des Kerns, auf dem man grade läuft, bzw. besser die Zeiten seines eigenen Threads/Prozesses.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.

Geändert von himitsu (12. Mai 2020 um 22:59 Uhr)
  Mit Zitat antworten Zitat