fjs*_*jsj 3 optimization google-app-engine decoupling models google-cloud-datastore
我在我的大学里制作了一个Google App Engine应用程序作为课程项目.现在我需要对其进行优化以便在商业上使用它.
如今,代码非常慢.它只有很少的模型,每个模型都有很多属性.在重写模型代码之前,我需要知道如果增加模型的数量,我的应用程序是否会更快,即增加去耦.在什么时候我应该考虑在其他模型中划分模型?
其他问题,如果解耦对性能产生积极影响,那么模型中的属性数量与从数据存储区获取数据的时间成正比?
如今,代码非常慢.它只有很少的模型,每个模型都有很多属性.
获取/放置大对象
由于数据存储区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的回答:
不,添加其他型号不会影响性能.
| 归档时间: |
|
| 查看次数: |
109 次 |
| 最近记录: |