¿Por qué PyYAML invierte tanto tiempo en analizar un archivo YAML?

Estoy analizando un archivo YAML con alrededor de 6500 líneas con este formato:

foo1:
  bar1:
    blah: { name: "john", age: 123 }
  metadata: { whatever1: "whatever", whatever2: "whatever" }
  stuff:
    thing1: 
      bluh1: { name: "Doe1", age: 123 }
      bluh2: { name: "Doe2", age: 123 }
    thing2:
    ...
    thingN:
foo2:
...
fooN:

Solo quiero analizarlo con elBiblioteca PyYAML (Creo que no hay más alternativas para eso en Python:¿Cómo puedo analizar un archivo YAML en Python?).

Solo para probar, escribo ese código para analizar mi archivo:

import yaml

config_file = "/path/to/file.yaml"

stream = open(config_file, "r")
sensors = yaml.load(stream)

Ejecutando el script contime comando junto con el script que obtengo esta vez:

real    0m3.906s
user    0m3.672s
sys     0m0.100s

Que los valores no parecen demasiado buenos en realidad. Solo quiero probar lo mismo con JSON, primero convirtiendo el mismo archivo YAML a JSON primero:

import json

config_file = "/path/to/file.json"

stream = open(config_file, "r")
sensors = json.load(stream)  # We read the yaml config file

Pero el tiempo de ejecución es mucho mejor:

real    0m0.058s
user    0m0.032s
sys     0m0.008s

¿Por qué es la razón principal por la que PyYAML pasa más tiempo analizando el archivo YAML que analizando el JSON? ¿Es un problema de PyYAML o es difícil de analizar debido al formato YAML?(probablemente sea el primero)

EDITAR:

Añado otro ejemplo con ruby ​​y YAML:

require 'yaml'

sensors = YAML.load_file('/path/to/file.yaml')

¡Y el tiempo de ejecución es bueno! (o al menos no tan malo como el ejemplo de PyYAML):

real    0m0.278s
user    0m0.240s
sys     0m0.032s

Respuestas a la pregunta(1)

Su respuesta a la pregunta