![](/img/trans.png)
[英]How do I find out which direction a user is panning with UIPanGestureRecognizer?
[英]How do I find out which class is taking the most memory?
我对iOS应用程序进行了看似无害的更改,但该应用程序崩溃了,因为随着应用程序的运行,内存消耗一直在不断增加,直到崩溃为止。 这可能是内存消耗增加了10倍。
我如何找出哪个类或结构对此负责? 我正在寻找类似的东西:
CVPixelBuffer:800MB CMSampleBuffer:100MB CIImage:50MB
我查看了Xcode的内存调试器和Instruments,但一无所获。
这是CIFilter 初始化程序中的内存泄漏。 以下是重现步骤:
这是代码:
let pixelBuffer = CMSampleBufferGetImageBuffer(sampleBuffer)!
let metadata = CMCopyDictionaryOfAttachments(nil, sampleBuffer, kCMAttachmentMode_ShouldPropagate)!
_ = CIFilter(cvPixelBuffer: pixelBuffer, properties: metadata)
预期成绩:
创建一个Swift对象并扔掉它不会泄漏内存。
实际结果:
捕获BGRA(而不是RAW)样本缓冲区并将其转换为CIImage不会泄漏内存:
_ = CIImage(cvImageBuffer:pixelBuffer,选项:[kCIImageProperties:元数据])
这是在iPhone 7 Plus和iPhone X上的iOS 11上。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.