【问题标题】:How to handle/Optimize High memory usage in your Android app如何处理/优化 Android 应用程序中的高内存使用情况
【发布时间】:2018-08-20 18:12:05
【问题描述】:

我注意到我的应用程序一直滞后,因此我运行了 Android Profiler,结果如下:

我的问题是如何确定所有内存都在使用什么,以及如何优化它?

【问题讨论】:

    标签: java android ram


    【解决方案1】:

    您的屏幕截图中已经显示了所有内存的使用情况:很多 byte[]s、FinalizerReferences 和位图。

    现在您可能想知道哪些代码负责分配这些。

    只需单击占用大量内存的类名(例如,在本例中为 byte[])。实例视图窗格将在右侧打开。单击任何实例以查看导致其分配的调用堆栈。单击更多实例以了解最大的违规者。

    另请参阅 Android Profiler 文档中的 View memory allocations

    【讨论】:

    • 如果我知道 byte[] 占用了大量内存,我该如何修复它,我如何得到我的代码的哪一部分导致了这种情况,以及可能的修复方法是什么?
    • 我已经解释过了。您查看调用堆栈。可能的修复是......嗯......没有在代码的那部分分配那么多内存;)
    猜你喜欢
    • 1970-01-01
    • 2014-11-08
    • 1970-01-01
    • 2021-07-19
    • 2012-11-12
    • 2015-07-05
    • 2011-01-18
    相关资源
    最近更新 更多