gpt4 book ai didi

ios - 如何释放 ARC 中的内存以进行高内存使用图形渲染?

转载 作者:可可西里 更新时间:2023-11-01 05:06:46 26 4
gpt4 key购买 nike

首先,感谢本网站上的每一个人...它对深入了解 iOS 编程的精髓提供了难以置信的帮助。

我当前的问题:

我有一个应用程序可以呈现非常风格化的照片版本。它使用了一些 CoreImage 过滤器,但需要一堆 CoreGraphics 来完成繁重的图像处理。

代理大小渲染效果很好,但是当我渲染图像的全分辨率版本时,它有时会因为内存使用率过高而崩溃。问题是我需要在渲染时在内存中有几个全分辨率 (3264x2448) 缓冲区。我不知道什么或如何释放更多内存。我一直非常小心地尽可能地匹配 CGImageRelease。

使用 ARC,我怎么知道某些东西是否真的已经发布和释放了?将对象设置为 nil 并没有真正做任何事情。

而且我怀疑我能否以任何方式将其流式传输到磁盘。

如有任何建议,我们将不胜感激!

谢谢!

最佳答案

ARC 在这种情况下没有什么不同。

这只是意味着您不必自己调用release

对于非 ARC,在低内存条件下,您可能想要释放一些您并不真正需要的属性(这意味着它们可以按需重新创建)。

- ( void )didReceiveMemoryWarning:
{
[ _myProperty release ];

_myProperty = nil;

[ super didReceiveMemoryWarning ];
}

在 ARC 下,它完全一样,只是你不必调用 release:

- ( void )didReceiveMemoryWarning:
{
_myProperty = nil;

[ super didReceiveMemoryWarning ];
}

将您的属性设置为nil 将在 ARC 下自动释放它。
所以它确实有所作为。

如果它对你不起作用,那么你肯定有另一个问题。
确保你没有内存泄漏,也没有 retain cycles .

肯定是最后一个问题...

关于ios - 如何释放 ARC 中的内存以进行高内存使用图形渲染?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9068312/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com