RenderScript - 在完成后创建的每个 Allocation 对象上调用 Allocation.destroy() 是一种好习惯吗?
RenderScript - is it good practice to call Allocation.destroy() on every Allocation object created when you're done with it?
我在使用 RenderScript 时一直遇到内存管理问题,所以我认为由于 Allocation.createFromBitmap()/createTyped()
消耗内存,Allocation.destroy()
释放它消耗的内存。
这样做是好的做法吗?对于基于 RenderScript 的程序还有什么好的做法?
Allocation的终结器会在GC发生时回收内存。
但是,是的,当您不再需要分配时销毁它们是一个很好的做法。
一条评论:从位图创建分配时调用 Allocation.createFromBitmap(RenderScript rs, Bitmap b) 通常是一个好习惯。它将使分配与位图共享数据,因此您不需要来回复制,只要位图的步幅在 32 字节或 16 字节边界上对齐。
我在使用 RenderScript 时一直遇到内存管理问题,所以我认为由于 Allocation.createFromBitmap()/createTyped()
消耗内存,Allocation.destroy()
释放它消耗的内存。
这样做是好的做法吗?对于基于 RenderScript 的程序还有什么好的做法?
Allocation的终结器会在GC发生时回收内存。
但是,是的,当您不再需要分配时销毁它们是一个很好的做法。
一条评论:从位图创建分配时调用 Allocation.createFromBitmap(RenderScript rs, Bitmap b) 通常是一个好习惯。它将使分配与位图共享数据,因此您不需要来回复制,只要位图的步幅在 32 字节或 16 字节边界上对齐。