by Anonymous » 21 Aug 2025, 05:58
Verwenden des folgenden Codes, das ich angenommen hätte. Siehe CNT in der Nähe von 0 , aber unter Windows sehe ich nur Werte über 500.000.
Code: Select all
from time import *
def test_time(f, c):
cnt = 0
for i in range(c):
ps, ts = f(), f()
if not ps - ts:
cnt += 1
return cnt
if __name__ == '__main__':
res = test_time(perf_counter_ns, 1_000_000)
print(res) # usually returns a count of over 500k
< /code>
Unter Linux geschieht dies nicht. Ich verstehe, dass die Ausgangsauflösung unter Windows auf 100 NS -Schritte begrenzt ist. Meine Frage, ob mir hier etwas fehlt oder wenn dies eine Möglichkeit gibt, unter Windows zu funktionieren. Es gibt einen guten Überblick über die Präzisionszeitmessung mit Python, befasst sich jedoch nicht mit der engeren Frage, warum aufeinanderfolgende Anrufe an perf_counter_ns
denselben Wert unter Windows und nicht unter Linux ergeben können.
Verwenden des folgenden Codes, das ich angenommen hätte. Siehe CNT in der Nähe von 0 , aber unter Windows sehe ich nur Werte über 500.000.[code]from time import *
def test_time(f, c):
cnt = 0
for i in range(c):
ps, ts = f(), f()
if not ps - ts:
cnt += 1
return cnt
if __name__ == '__main__':
res = test_time(perf_counter_ns, 1_000_000)
print(res) # usually returns a count of over 500k
< /code>
Unter Linux geschieht dies nicht. Ich verstehe, dass die Ausgangsauflösung unter Windows auf 100 NS -Schritte begrenzt ist. Meine Frage, ob mir hier etwas fehlt oder wenn dies eine Möglichkeit gibt, unter Windows zu funktionieren. Es gibt einen guten Überblick über die Präzisionszeitmessung mit Python, befasst sich jedoch nicht mit der engeren Frage, warum aufeinanderfolgende Anrufe an perf_counter_ns [/code] denselben Wert unter Windows und nicht unter Linux ergeben können.