2

以下行是什么意思(取自 Android 日志):

06-21 23:48:29.701: D/memalloc(5389): /dev/pmem: Mapped buffer base:0x52522000 size:3047424 offset:3031040 fd:76

具体来说,offset 和 fd 代表什么?当 fd 达到 86 时,我的一个 android 应用程序(将一些东西绘制到画布上)似乎挂起。

4

1 回答 1

1

简短的回答:您可能内存不足。

长答案:(这是高度推测性的,使用了大量的猜测工作)

PMEM 是 android 中处理分配大块连续物理内存的模块
显然它也与图形有关,请参阅


这个演示文稿是我能找到的最好的东西,遗憾的是它缺乏解释。
但是,它确实提到了 android 中各种与图形相关的东西使用通过 PMEM 分配的大缓冲区。

PMEM 显然创建了一个内存结构,其中一个连续的 bloc* 内有多个缓冲区。是整个 PMEM 缓冲区
base的(物理?映射虚拟?我不确定)基地址。似乎是指单个“子块”的大小。给出特定“子块”或文件描述符的起始地址,用于访问该特定缓冲区
Size
offset
fd

既然你提到fd高于 86 的值会导致坏事,而上面的例子有 fd = 76,我猜你只是内存
不足(PMEM 只能处理 12 个缓冲区,所以也许你遇到了也有限制?)

于 2013-08-11T20:55:17.123 回答