iOS 应用不断增加内存?(内存崩溃)DidReceiveMemoryWarning

标签 ios objective-c memory memory-leaks out-of-memory

我开发了使用 MKMapView,MoviePlayer,Recording Videos,Downloading the Videos and Uploading videos at Amazone Server 的应用程序。

现在,当我用 MKMapview 窗口打开屏幕时,它每次都将内存增加到 10 MB,而当我从该屏幕返回时,它只减少了 5 MB。与 MPMoviePlayer 相同。

我的上传线程在后台模式下持续运行。(它将检查一些 plist 文件,如果 plist 文件有一些条目,它将开始在后台进程中上传视频,完成后它将停止线程 1 分钟,然后为上述过程再次启动它)但我保留了具有 __weak 属性的对象,所以这不是使用我的内存的原因。

我怀疑 MKMapview 和 MPMoviewPlayer 是否使用高内存而不是重新分配它。

在我的应用程序中,我有要从服务器播放的视频,在播放时我需要从服务器下载相同的视频。

意味着同时用户也可以看到 map 。

现在我的问题可能是我的应用程序使用了太多东西,所以在运行时内存达到 218 MB 如果我连续使用它并非常粗略地访问它,应用程序就会崩溃。

所以任何人都可以建议我如何防止这种内存崩溃?我也检查了内存泄漏。但我确实发现了很多重要的泄漏。

我想的是 UIImagePickerController,MkMapview,MPMoviewplayer,Download,upload Videos 这种功能让我的应用程序占用了更多内存。 当我在我的应用程序中访问屏幕时,手机内存不断增加......

最佳答案

我要检查的第一件事是您是否正在创建大量自动释放对象,并且不要耗尽自动释放池。如果您不使用 @autoreleasepool {...} 设置自己的自动释放池,默认自动释放池将仅在应用返回主事件循环时清空。此外,任何后台线程都应该安装一个自动释放池。请查收the docs .

关于iOS 应用不断增加内存?(内存崩溃)DidReceiveMemoryWarning,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24851795/

相关文章:

ios - Quickblox聊天消息读取状态

ios - 在对象上找不到属性 'tableView'

c# - 与 C# 相比,在 Objective C 中实现协议(protocol)的语法?

c - 两个应用程序同时打开一个文件

ios - CollectionViewcell 中 tableView 的性能问题

iphone - 在立方体动画中切换两个 View Controller 的 View

ios - 如何更改标签栏上的非事件图标/文本颜色?

c++ - 如何确定某些东西在分层结构的内存中的存储位置

c++ - linux会不会阻止栈和堆互相生长?

ios6 cachedResponseForRequest block sendSynchronousRequest