Код: Выделить всё
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
Другим могут быть полезны Высокоточные часы в Python, как предложено @JonSG. Он дает хороший обзор точного измерения времени с помощью Python, но не затрагивает более узкий вопрос, почему последовательные вызовы perf_counter_ns могут давать одно и то же значение в Windows, а не в Linux.
Я тестировал такое поведение с 3.11, 3.12 и 3.13.
Я тестировал ограничение процесса интерпретатора Python в Windows одним ядром или изменение приоритета процесса. Ни то, ни другое не оказало очевидного влияния на количество столкновений.
Подробнее здесь: https://stackoverflow.com/questions/797 ... ame-number
Мобильная версия