Por que PyYAML está gastando tanto tempo apenas analisando um arquivo YAML?

Eu estou analisando um arquivo YAML com cerca de 6500 linhas com 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:

Eu só quero analisá-lo com oBiblioteca PyYAML (Eu acho que não há mais alternativas para isso em Python:Como posso analisar um arquivo YAML em Python).

Apenas para testar, escrevo esse código para analisar meu arquivo:

import yaml

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

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

Executando o script comtime comando junto com o script eu recebo desta vez:

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

Esses valores não parecem muito bons de verdade. Eu só quero testar o mesmo com JSON, apenas convertendo o mesmo arquivo YAML para JSON primeiro:

import json

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

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

Mas o tempo de execução é muito melhor:

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

Por que o principal motivo pelo qual o PyYAML gasta mais tempo analisando o arquivo YAML do que analisando o JSON? É um problema de PyYAML ou é por causa do formato YAML é difícil de analisar?(provavelmente é o primeiro)

EDITAR:

Eu adiciono outro exemplo com ruby ​​e YAML:

require 'yaml'

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

E o tempo de execução é bom! (ou pelo menos não tão ruim quanto o exemplo PyYAML):

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

questionAnswers(1)

yourAnswerToTheQuestion