0

我们工作中的测试人员无法通过手动测试使我们的应用程序出现 OOM 错误,但是当我们运行集成测试时,在大约 50 次左右的测试之后,我们得到了 OOM 错误,并且其余的测试都没有完成。

当我们在集成测试期间获得 OOM 时,我想转储堆。我正在使用 Maven 和 Spoon 来启动集成测试。我真的很想看看堆,看看是什么杀死了内存。我在测试运行期间尝试连接监视器,但 ddms 尝试连接的端口被绑定。

4

1 回答 1

1

测试基础设施可能已连接到 ddms 端口。

您实际上可以通过调用 android.os.Debug.dumpHprofData() 从测试中转储堆。测试应该在与您的应用程序相同的进程空间中运行。因此,它应该可以正常工作。在第 45 次测试之后开始在每个测试中获取堆转储,您可能会获得需要分析的堆转储。

于 2013-06-06T06:04:06.580 回答