增加Google App Engine上的模型数会影响性能?

fjs*_*jsj 3 optimization google-app-engine decoupling models google-cloud-datastore

我在我的大学里制作了一个Google App Engine应用程序作为课程项目.现在我需要对其进行优化以便在商业上使用它.

如今,代码非常慢.它只有很少的模型,每个模型都有很多属性.在重写模型代码之前,我需要知道如果增加模型的数量,我的应用程序是否会更快,即增加去耦.在什么时候我应该考虑在其他模型中划分模型?

其他问题,如果解耦对性能产生积极影响,那么模型中的属性数量与从数据存储区获取数据的时间成正比?

bak*_*kal 7

如今,代码非常慢.它只有很少的模型,每个模型都有很多属性.

获取/放置大对象

由于数据存储区API只能放置或获取对象(而不是单个字段),因此每次为数据存储区获取对象时,它都会获取其所有字段,无论您是否要在该点使用它们.当我们将对象写回数据存储区时,此效果将更强,即使您更改对象中的单个字段,它也必须写入所有内容.(写入成本超过读取)

在我进一步说明之前:模型的扩散应遵循您的读写模式.

为了实际并举例说明,我在博客上对帖子进行建模,其中每个都有a title,a date和a body(我们理所当然地认为它比其他字段大得多).在简单的对象建模中,我将这三个字段放在一个单独的类中BlogPost,但每次我只想阅读时都会对整个对象进行处罚titles(例如,只显示帖子列表并构建帖子链接) ,或只是为了更新dates.

class BlogPost {
String title; String body; long date; }
Run Code Online (Sandbox Code Playgroud)

因此,人们可以做的是创建一个Body可以保持的类body,并在其中保留一个引用(一个键)BlogPost.

class BlogPost {
String title;
Key<Body> body;
long date;
}

class Body {
String body;
}
Run Code Online (Sandbox Code Playgroud)

轻量级可实现高效的跨侧序列化

BlogPost如果我决定将它序列化并通过网络发送它,例如将其发送到Web浏览器(在JavaScript中使用),例如GWT,这也使得类更轻量级.

增加Google App Engine上的模型数量是否会影响性能?

Nick Johnson的回答:

不,添加其他型号不会影响性能.