tutorial sets realpython real python dictionary object-literal

python - sets - ¿Por qué se prefiere la sintaxis literal de dict sobre el constructor de dict?



real python tutorial (1)

El constructor es más lento porque crea el objeto llamando a la función dict() , mientras que el compilador convierte el literal dict en el BUILD_MAP , guardando la llamada a la función.

¿Por qué el constructor de dict de Python es más lento que el uso de la sintaxis literal?

Después del arduo debate con mi colega, hice una comparación y obtuve las siguientes estadísticas:

python2.7 -m timeit "d = dict(x=1, y=2, z=3)" 1000000 loops, best of 3: 0.47 usec per loop python2.7 -m timeit "d = {''x'': 1, ''y'': 2, ''z'': 3}" 10000000 loops, best of 3: 0.162 usec per loop

¿Cuál es la razón por la cual el constructor es más lento? ¿Y en qué situaciones, si las hubiera, sería más rápido?