Помимо вызовов RPC, что может занять мою программу App Engine так долго - PullRequest
1 голос
/ 29 ноября 2011

Я пытаюсь оптимизировать производительность при загрузке страницы в GAE, и я немного озадачен тем, что так много времени занимает обслуживание страницы.

Когда я впервые запустил appstats, я обнаружил, что страница вызывает около 500-600 вызовов RPC. Теперь я получил это до 3.

Тем не менее, я все еще вижу огромное количество дополнительного времени в статистике приложений. Другая страница на моем сайте (использующая ту же платформу django + шаблоны) загружается примерно за 60 мс, выполняя небольшой запрос к небольшому набору данных.

Вопрос в том, что это за накладные расходы, и где я должен искать проблемные точки?

Данные в запросе содержат около 350 записей и около 30 свойств на запись. Я крут с самим вызовом данных, принимая время API хранилища данных, но это другой раз, когда я запутался. Данные проходят через большой итератор, и теперь я использовал выборку для большинства этих запросов, чтобы удерживать вызов RPC и убедиться, что все находится в памяти, а не запрашивается по ходу.

Медленный запрос - посмотрите на все лишние синие

Slow Request

Быстрый запрос, синий RPC сопоставляется с общим синим

Fast Request

EDIT

ОК, поэтому я создал новую модель под названием FastModel и скопировал на нее минимальные элементы, необходимые для страницы, чтобы она могла загружаться максимально быстро, и это действительно имеет большое значение. Кажется, на модели есть вещи, которые замедляют все это. Будем расследовать дальше.

1 Ответ

1 голос
/ 09 декабря 2011

Десериализация 350 записей, особенно больших, занимает много времени. Это, вероятно, то, что занимает большую часть вашего времени выполнения.

...