【发布时间】:2021-09-23 04:02:53
【问题描述】:
有一些MTLTextures要计算其直方图,这些纹理在每次循环迭代时都会发生变化,因此直方图的计算是使用MPSImageHistogram在循环中进行的。
有一个命令队列,一个 在每次循环迭代时都会创建一个新的命令缓冲区来执行直方图计算。
由于循环中创建了新的命令缓冲区,内存占用量(来自分配工具)不断增加。
问题是命令缓冲区执行后如何清除分配的内存?或者有什么方法可以重构计算方案?
简而言之,如何释放命令缓冲区、计算管道、编码器等金属对象消耗的内存。
【问题讨论】:
-
所有 Metal 对象都是 Objective-C 对象。如果您不使用 ARC,请确保它们不会保留在任何地方。你真的不需要做任何具体的事情,当 API Objective-C 对象被释放时,驱动程序应该在使用完这些对象后清理内存。
标签: ios swift metal instruments