11

在接下来的情况下,我需要测试应用程序的序列化\反序列化:

  • 应用程序长时间处于后台(空闲模式)并被 GC 杀死;
  • 应用程序在后台,由于资源(内存\cp)不足而被 GC 杀死;

在某些设备上,它可以通过启动 1-2 个游戏来模拟。但是在具有 1gb 内存的四核设备上,处理 4-10 个重度游戏非常非常困难,并且需要很多时间。

我尝试实现一些模拟资源加载的演示:

  • 创建位图数组
  • 创建对象数组
  • 推出很多服务
  • 开展很多活动

但没有结果,应用程序仍然有效(即使在旧设备上),我的演示因 OutOfMemoryException 而崩溃。

如何在演示应用程序中模拟高负载?

谢谢!

4

2 回答 2

2

好吧,“GC”实际上被滥用了“Out Of Memory Killer”,它就像通过信号 9 一样杀死应用程序。在 root 设备中,您应该能够从 shell调用kill(1)命令或从本机调用 kill (2)函数库(我不确定它是否绑定到 Java)并随时终止您的应用程序。

系统通常会在它进入后台时调用onStop,然后Activity在没有进一步警告且没有机会做出反应的情况下终止应用程序。因此,如果您离开应用程序并杀死它,则适当模拟它被 OOM 杀死。

于 2012-11-06T15:44:59.730 回答
0

在 Play 商店中安装任何内存清洁器。我安装了这个:easymemorycleaner

一旦你清理了你的记忆。您在内存中存储的变量将消失。除非您将数据存储在 Parcelable 中。这将是持久的。

于 2016-09-21T06:29:52.883 回答