1

我正在 Eclipse 中编写 App Engine Java 应用程序。到目前为止,它只是在玩数据存储和 JDO,应用程序并没有做任何严重的事情。然而,经过大约一个小时的开发,我最终遇到了 java.lang.OutOfMemoryError 错误。

我读过这个错误很可能是由某种内存泄漏引起的。为了进行测试,我尝试稍微加快速度并强制出现错误。使用 wget,我向与 Eclipse 开发期间相同的 url 发出了大约 3000 个请求。但是什么也没发生。我假设如果真的存在内存泄漏,我会这样看......

是否有可能这个错误真的是由开发过程引起的?我使用触摸appengine-web.xml的技巧,所以每次我更改并保存文件时,服务器都会再次加载所有文件并运行DataNucleus增强器......所以它经常发生,这可能是原因吗?

另一件事是,它可能是在我实施以下解决方案(如何使用 JDO 持久性管理器?)与 Persistence Manager 一起工作之后开始的。我在请求期间将对 PM 的引用存储在多个位置,但是在请求完成后应该将其全部处理掉,对吗?再说一次,如果是由这个引起的,在3000个请求之后不会出现错误吗?(这比一个小时的开发要求更多)。

4

1 回答 1

0

我不想让这个问题悬而未决,所以这是从问题下面的评论中提取的:

是的,PermGen 错误可能是由于在开发过程中频繁重新部署造成的。所以应用程序不必有内存泄漏。

于 2012-08-08T11:58:46.457 回答