Почему генерация uuid4 происходит быстрее, чем uuid1?

#python #uuid

#python #uuid

Вопрос:

Это код, который я использую,

 from uuid import uuid1, uuid4

def test1(n): 
    for _ in range(0,n): 
         uuid1() 
                                                   

def test4(n): 
    for _ in range(0,n): 
         uuid4() 
  

Результаты выполнения

 In [65]: %timeit test1(1000000)                           
22.1 s ± 1.01 s per loop (mean ± std. dev. of 7 runs, 1 loop each)

In [66]: %timeit test4(1000000)                           
5.55 s ± 600 ms per loop (mean ± std. dev. of 7 runs, 1 loop each)
  

Как вы можете видеть, генерация uuid4, кажется, в 5 раз быстрее, чем uuid1. Я знаю, понимаю схему uuid https://en.wikipedia.org/wiki/Universally_unique_identifier

Где uuid1 тратит это время?

Комментарии:

1. На этот вопрос вы могли бы ответить сами, используя профилировщик выборки.

2. Я предполагаю, что поиск хоста — это та часть, которая требует времени. Вы можете попытаться проверить это самостоятельно, передав фиксированный хост в качестве аргумента узла в uuid1 и посмотреть, работает ли это быстрее.