Ich habe einige Fragen zu den neuen Funktionen time.perf_counter()und time.process_time().
Für die erstere aus der Dokumentation:
Gibt den Wert (in Sekundenbruchteilen) eines Leistungsindikators zurück, dh eine Uhr mit der höchsten verfügbaren Auflösung , um eine kurze Dauer zu messen. Es enthält die im Schlaf verstrichene Zeit und ist systemweit. Der Referenzpunkt des zurückgegebenen Werts ist undefiniert, sodass nur die Differenz zwischen den Ergebnissen aufeinanderfolgender Aufrufe gültig ist.
Ist diese "höchste Auflösung" auf allen Systemen gleich? Oder hängt es immer etwas davon ab, ob wir zum Beispiel Linux oder Windows verwenden?
Die Frage ergibt sich aus der Tatsache time.time(), dass in der Dokumentation steht, dass "nicht alle Systeme Zeit mit einer besseren Genauigkeit als 1 Sekunde liefern". Wie können sie jetzt eine bessere und höhere Auflösung bieten?
Über letzteres time.process_time():
Gibt den Wert (in Bruchteilen von Sekunden) der Summe der System- und Benutzer-CPU-Zeit des aktuellen Prozesses zurück. Die im Schlaf verstrichene Zeit ist nicht enthalten. Es ist per Definition prozessweit. Der Referenzpunkt des zurückgegebenen Werts ist undefiniert, sodass nur die Differenz zwischen den Ergebnissen aufeinanderfolgender Aufrufe gültig ist.
Ich verstehe nicht, was sind diese "Systemzeit" und "Benutzer-CPU-Zeit"? Was ist der Unterschied?
duckZeit als Funktion zu verwenden, anstatt sie zu implementieren. Dh verwendentime.time()odertime.monotonic()je nachdem, was Sie wollen.