LogService fetch - > OutOfMemoryError:Java堆空间

时间:2013-12-03 17:14:08

标签: java google-app-engine

LogService fetch()导致错误(请参阅下面的堆栈跟踪):

示例代码(Java 1.7,GAE 1.8.8):

...
logQuery.versions(Arrays.asList(new LogQuery.Version("default", "v3")));
logService.fetch(query);
...

问题似乎出现在 versions() 方法中!如果我使用弃用方法 moduleVersions() ,则不会抛出任何异常(即使有更多结果)。

getVersions: [Version: moduleId=default versionId=v3]

com.google.appengine.api.log.LogServiceException: java.lang.OutOfMemoryError: Java heap space
at com.google.appengine.api.log.LogServiceImpl.fetch(LogServiceImpl.java:38)
at com.google.appengine.api.log.LogQueryResult$1.computeNext(LogQueryResult.java:113)
at com.google.appengine.api.log.LogQueryResult$1.computeNext(LogQueryResult.java:98)
at com.google.appengine.repackaged.com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:143)
at com.google.appengine.repackaged.com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:138)

1 个答案:

答案 0 :(得分:0)

在App Engine上处理日志非常耗费内存。您可以使用具有更多内存的实例,也可以使用appengine-mapreduce库。

请参阅Trying to get data from large dataset