Android 通过Renderscript在GPU中分配内存

Android 通过Renderscript在GPU中分配内存,android,bitmap,renderscript,Android,Bitmap,Renderscript,我正在通过Android上的Renderscript制作3种模糊位图。在多次使用应用程序后,它会自动关闭。记录如下: V/RenderScript(4548):用户支持的分配未能满足步幅要求,返回到单独分配 D/dalvikvm(4548):GC_显式释放1K,5%释放21256K/22352K,暂停1ms+4ms,总计20ms 在清单文件中启用了大堆,但没有帮助。我需要通过renderscript清除GPU中的内存,不是吗?我不知道该怎么做 安卓操作系统:4.4.2,设备:三星Note II

我正在通过Android上的Renderscript制作3种模糊位图。在多次使用应用程序后,它会自动关闭。记录如下:

V/RenderScript(4548):用户支持的分配未能满足步幅要求,返回到单独分配
D/dalvikvm(4548):GC_显式释放1K,5%释放21256K/22352K,暂停1ms+4ms,总计20ms

在清单文件中启用了大堆,但没有帮助。我需要通过renderscript清除GPU中的内存,不是吗?我不知道该怎么做

安卓操作系统:4.4.2,设备:三星Note II


有人知道如何处理这个问题吗?

如果您分配的内存使用率是共享的(在createFromBitmap中默认使用),并且位图的宽度不是16像素的倍数,那么您将在日志中看到该消息。不过,这并不危险,也不会导致应用程序崩溃


当事情结束时,你是否真的遇到了异常情况?听起来您可能在某个地方有某种泄漏。

如果您正在分配共享使用率的内存(在createFromBitmap中默认使用),并且您的位图不是16像素宽的倍数,那么您将在日志中看到该消息。不过,这并不危险,也不会导致应用程序崩溃


当事情结束时,你是否真的遇到了异常情况?听起来你可能在某个地方有某种泄漏。

你知道16*n像素宽的位图是否会加快分配速度吗?通常是这样——许多驱动程序可以直接使用这些位图的备份存储,而不需要第二次分配+复制。这就是USAGE_SHARED所做的——如果可能,使用现有的备份存储,否则分配一个新的备份存储并进行复制。由于缓存刷新,其他API保持不变(即使备份存储是共享的,也必须复制回位图)。非常感谢。我将在构建我的应用程序时考虑到这一点@TimMurray你能调查一下这个问题吗@即使共享备份存储不是位图,TimMurray是否仍有必要进行复制?我使用的是常规浮点数组(16字节内存对齐)。你知道16*n像素宽的位图是否会加快分配速度吗?通常是这样——许多驱动程序可以直接使用这些位图的备份存储,而不需要第二次分配和复制。这就是USAGE_SHARED所做的——如果可能,使用现有的备份存储,否则分配一个新的备份存储并进行复制。由于缓存刷新,其他API保持不变(即使备份存储是共享的,也必须复制回位图)。非常感谢。我将在构建我的应用程序时考虑到这一点@TimMurray你能调查一下这个问题吗@即使共享备份存储不是位图,TimMurray是否仍有必要进行复制?我使用的是常规浮点数组(16字节内存对齐)。