gpt4 book ai didi

android - 为什么Android在加载图像时分配的内存比需要的多

转载 作者:塔克拉玛干 更新时间:2023-11-02 07:50:23 24 4
gpt4 key购买 nike

伙计们,我认为这不是重复的,也不是我如何避免OOM 的问题之一。这是对知识的真正追求,所以请不要投反对票......

假设我有一个 500x500 像素的 JPEG。我将它加载为 ARGB_8888,它是“糟糕的 ”。

我希望 Android 分配 500x500x4 字节 = 略低于 1MB 但是,查看 heap dump,您会发现 Android 分配了更多,通常是以下因素5-10 倍。

您经常会在这里看到有关OOMS 的问题,其中堆栈跟踪 显示一个堆请求,比如 15MB 并且它总是 比仅保存图像字节所需的大得多。 OP 通常会收到一些反对票,然后被关于使用更少内存(感谢 Romain!)和扩展的标准答案和评论轰炸。我认为这里有更多的东西。

谁知道这是为什么?

如果没有明显的答案,如果有帮助,我会组织一个SSCCE

附言。我认为 JPEG 与 PNG 等是无关紧要的,因为我们谈论的是支持位图的内存使用,它只是 x 乘以 y 乘以 BPP - 或者我速度慢?

最佳答案

它曾经是内存管理的一个非常常见的技巧,可以获取一个内存池或内存块,这些内存被分成更小的请求。当我使用嵌入式系统时,维护不同大小的内存池是一种常见的做法,我们只是分配了一个大于从池中请求的数量的 block 。这是防止过多内存 fragment 的便捷方法。也许这正在这里发生。

关于android - 为什么Android在加载图像时分配的内存比需要的多,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13323477/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com