Почему PyYAML тратит так много времени только на анализ файла YAML?

Я анализирую файл YAML с около 6500 строк в следующем формате:

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:

Я просто хочу разобрать это сБиблиотека PyYAML (Я думаю, что нет больше альтернативы этому в Python:Как я могу разобрать файл YAML в Python).

Просто для тестирования, я пишу этот код для анализа моего файла:

import yaml

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

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

Выполнение сценария сtime Команда вместе со сценарием я получаю на этот раз:

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

Что значения не делаюткажется, слишком хорошо на самом деле. Я просто хочу проверить то же самое с JSON, просто сначала конвертируя тот же файл YAML в JSON:

import json

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

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

Но время выполнения намного лучше:

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

Почему основная причина того, что PyYAML тратит больше времени на разбор файла YAML, чем на разбор файла JSON? Это проблема PyYAML или из-за того, что формат YAML трудно разобрать?(вероятно, первый)

РЕДАКТИРОВАТЬ:

Я добавляю еще один пример с ruby и YAML:

require 'yaml'

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

И время выполнения хорошо! (или, по крайней мере, не так плохо, как пример PyYAML):

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

Ответы на вопрос(1)

Ваш ответ на вопрос