Медленная сериализация в фреймворке django rest - PullRequest
0 голосов
/ 26 мая 2018

Я пытаюсь понять, почему ModelSerializer в django rest framework слишком медленно.Я знаю о проблеме с N + 1 запросами, это не так.У меня супер простая модель, которая имеет только цифры и строки.Профилирование показывает, что мой код большую часть времени проводит внутри метода Serializer::to_representation(), который не выполняет запросов к базе данных.

Странная вещь заключается в том, что время, проведенное внутри to_representation метода, иногда составляет 0.00001s (что соответствует ожиданиям), иногда 0.001s, а иногда (очень редко) 0.05s.Время не коррелирует с размером сериализуемого объекта (в моем случае они все одного размера).

Сериализация 300 объектов занимает около 1s.Мой рукописный сериализатор, который просто записывает obj в строку json, получая все поля вручную вместо MySerializer(obj).data, выполняет работу в 0.05s, что сравнимо с тем, что я ожидал, учитывая 0.00001s, потраченный внутри to_representation.

Что может заставить метод to_representation иногда работать так медленно и как я могу сделать мой сериализатор быстрее?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...