RenderScript - является ли хорошей практикой вызывать Allocation.destroy() для каждого объекта Allocation, созданного по завершении работы с ним?

У меня были проблемы с управлением памятью при использовании RenderScript, поэтому я решил, что с Allocation.createFromBitmap()/createTyped() потребляет память, Allocation.destroy() освобождает память, потребляемую им.

Это хорошая практика, и что еще является хорошей практикой для программ на основе RenderScript?

1 ответ

Решение

Финализатор Allocation восстановит воспоминания, когда произойдет GC.

Однако, да, это хорошая практика - уничтожать Распределения, когда они вам больше не нужны.

Один комментарий: обычно рекомендуется вызывать Allocation.createFromBitmap(RenderScript rs, Bitmap b) при создании Allocations из растрового изображения. Это заставило бы Распределение делиться данными с растровым изображением, таким образом, вам не нужно копировать туда и обратно, пока шаг растрового изображения выравнивается по границе 32 байта или 16 байтов.

Другие вопросы по тегам