And*_*son 4 iphone cocoa-touch objective-c ipad
我有一个iPad应用程序,它有一个下载大量地图文件的过程(一些数据和几万个文件).
在我最近的测试版本中,设备有时会在下载过程中重新启动(下载可能需要几个小时).
当应用重新启动时,它不会留下崩溃报告.我们在运行4.3.3的iPad 1和iPad 2上都观察到了这种行为.
我唯一能想到的是我们将最大并发线程数从4增加到20来进行这些下载.
完全耗尽系统内存会触发设备的硬重启.这曾经在iPhone OS 2.0中更常见,在最初的iPhone和iPod touch的有限硬件上运行.在最近的操作系统版本中,当应用程序超出内存上限时,Apple会更严格地强制执行应用程序的硬件杀戮,因此执行此操作变得更加困难.此外,这些设备的内存比以往多得多.
有时您可以这样做的一种方法是加载许多大型纹理或其他图形组件,这些组件可能无法立即识别为应用程序使用的内存.在紧密循环中将一堆数据加载到GPU上时,我已经能够重新启动系统.你可能会遇到类似的东西.
我怀疑这与你所使用的活动线程的数量有关,尽管它们可能使你在系统杀死你的应用程序之前将一堆数据转储到内存中更容易.
顺便说一句,您是否考虑过使用GCD或基于队列的框架(如ASIHTTPRequest)而不是拥有大量消耗资源的线程?这些可能对您的应用程序更有效,但仍然提供您所需的并发性.
| 归档时间: |
|
| 查看次数: |
1130 次 |
| 最近记录: |