Почему pythons pickle.load такой медленный для вложенных Django объектов?
Мне нужно извлечь 1800 засоленных объектов из кеша и загрузить их. Объекты состоят из экземпляра модели Django с 2-уровневым связанным объектом (созданным с использованием 'select_related' в наборе запросов с последующим получением требуемого экземпляра модели). В каждом слое есть только несколько полей (около 5), в результате чего общее количество полей составляет около 30. Для загрузки всех 1800 объектов требуется только 1,3 секунды.
Если я создаю объект cached_object для его сохранения там вместо того, чтобы в памяти, и загрузить его из базы данных, это займет всего 13 мс для всех 1800 объектов, потому что теперь ему не нужно использовать pickle.load, но создает связанные объекты "новые" из базы данных.
Есть ли какая-то особая причина, по которой pickle.load такой медленный? Я хранил объекты, это кэш памяти для проблем с производительностью, но это только ухудшило ситуацию.