【问题标题】:Android - limit heap size to 16MB for testing purposes?Android - 出于测试目的将堆大小限制为 16MB?
【发布时间】:2016-09-26 08:13:36
【问题描述】:

我创建了一个 Android 应用,现在我想确保它的堆使用量永远不会超过 16MB。

不幸的是,对于这项任务,我的设备的堆比最小的 16MB 大得多,它至少有 32MB。

当我跟踪分配时,它只是不停地分配和分配,很少进行垃圾收集,这使得很难跟踪内存泄漏。

我尝试过使用各种分析器,但并不容易。

最好我希望在活动之间来回切换,只看到堆上升然后下降,这样就不会出现内存泄漏,但是由于垃圾收集被推迟到真正需要它时,这似乎很难做到。

是否可以在 32MB 堆大小的设备上将堆大小限制为 16MB 以用于测试目的?

【问题讨论】:

    标签: android memory-leaks heap-memory


    【解决方案1】:

    最好的方法是使用 Android 虚拟设备,因为您可以在 Android 模拟器中配置堆大小。创建 AVD 时在高级选项中。

    但是,如果您必须在真实设备上对此进行测试,您可以通过在启动时创建堆内存的内存泄漏来模拟拥有更小的堆。确保对分配的对象保持强引用,这样它就不会被垃圾收集。

    在具有 32MB 堆大小的设备上,如果您在启动时创建 16MB 泄漏,这将留下剩余的 16MB 堆空间供您的应用程序使用。

    【讨论】:

      猜你喜欢
      • 2012-06-24
      • 2013-02-24
      • 2018-09-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-09-11
      • 2020-09-05
      相关资源
      最近更新 更多