В настоящее время код очень медленный. Это
имеет только несколько моделей со многими
свойства в каждом.
Получение / размещение больших объектов
Поскольку API хранилища данных может только помещать или получать объект (в отличие от отдельных полей), каждый раз, когда вы выбираете объект для хранилища данных, он выбирает все его поля независимо от того, собираетесь ли вы использовать их все в этой точке или нет , Этот эффект будет сильнее, когда мы записываем объект обратно в хранилище данных, он должен записывать все, даже когда вы изменяете одно поле в объекте. (запись стоит больше, чем чтение)
Прежде чем я скажу что-либо еще: распространение моделей должно следовать вашей схеме чтения и записи.
Чтобы быть практичным и привести пример, скажем, я моделирую посты в блоге, где у каждого будут title
, date
и body
(которые мы по праву будем считать гораздо большими, чем другие поля). В прямолинейном моделировании объектов у меня были бы эти три поля в одном классе BlogPost
, но я наказываю за весь объект каждый раз, когда просто хочу прочитать titles
(скажем, просто отобразить список сообщений и создать ссылки на сообщения), или просто обновить dates
.
class BlogPost {
String title; String body; long date; }
Итак, что можно сделать, это создать класс Body
, который будет содержать body
, и сохранить ссылку (ключ) на него внутри BlogPost
.
class BlogPost {
String title;
Key<Body> body;
long date;
}
class Body {
String body;
}
Легкий вес обеспечивает эффективную сериализацию на стороне
Это также делает класс BlogPost
более легким, если я решу его сериализовать и отправить по сети, например, отправить в веб-браузер (для использования в JavaScript), например, с GWT.
Увеличивает ли количество моделей на
Google App Engine влияет на производительность?
Ответ Ника Джонсона:
Нет, добавлять дополнительные модели не буду
Ударопрочность.