0

嗨:我有一个包含 10,000 个 Junit 测试用例的应用程序。上周,当我添加新代码时,我注意到有很多 Java heap out of memory 单元测试用例错误。1)一种方法是重新检查我添加的代码。2)我在单元测试用例期间连接JVM,然后得到堆转储。有人可以提示我在 2) 的情况下如何做吗?

我使用windows、maven、J2SE。

基本上我知道我应该给 Java 命令什么样的参数,但我不知道我应该把这些参数放在 pom xml 的什么地方。

<plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-surefire-plugin</artifactId>
        <version>2.4.2</version>
</plugin>
4

1 回答 1

1

您可以设置 jvm 属性 -XX:-HeapDumpOnOutOfMemoryError (http://www.oracle.com/technetwork/java/javase/tech/vmoptions-jsp-140102.html) 并将其设置为 surefire (http://maven. apache.org/plugins/maven-surefire-plugin/test-mojo.html#argLine)
或者,您可以使用 jmap 按需转储进程的内存。
请参阅 jps(获取 pid)和 jmap 文档
http://docs.oracle.com/javase/6/docs/technotes/tools/share/jps.html
http://docs.oracle.com/javase/6/ docs/technotes/tools/share/jmap.html

于 2012-05-28T07:24:58.407 回答