可以在获取对象(java)时减少Google App Engine中的datastore_v3.Next调用吗?

时间:2011-05-26 11:46:14

标签: java google-app-engine optimization jdo datastore

我正在尝试优化从Google数据存储区读取对象的代码。使用Java和JDO,这是我的代码:

List<Article> articles = (List<Article>) query.execute(articleId);
List<Article> detatchedArticles = (List<Article>) pm.detachCopyAll(articles);

当我查看appstats日志时,会产生:

datastore_v3.RunQuery   11ms (195ms api)
datastore_v3.Next   15ms (183ms api)
datastore_v3.Next   11ms (183ms api)
datastore_v3.Next   4ms (183ms api)

所以,我的问题是;我可以以某种方式调整(JDO设置,其他设置)每个数据存储区从数据存储区中取出多少个对象吗?

我正试图赢得一些API兆周期。或者,很多,如果我想要的话是可能的。

1 个答案:

答案 0 :(得分:1)

如果您还没有这样做,我建议使用memcache。根据您的实体,您可以在jdoconfig.xml中启用它。这是一个简短的方法:http://ukena.de/content/enabling-jdo-caching-google-app-engine。请注意,如果您使用的是嵌入式实体,则由于GAE JDO实现中的一些错误,您必须手动处理内存缓存。