VM:Allocation 导致应用崩溃
VM:Allocation causes app to crash
我的应用程序使用 NSTimer 变量,它使用 NSNotificationCenter.postNotificationName 到 post 每秒通知 UIViewController class。
问题是应用程序偶尔崩溃,没有堆栈跟踪,这意味着这是一个内存问题。
在 Instruments 中,发生这种情况是因为 VM:Allocation 增加了 1.78MB。分配只是随机发生的。
这是我启动计时器后的样子:
这是我开始计时几分钟的时间
所以,
我没有看到堆栈跟踪或任何东西。我该如何进行调试
这个?
应用只用了7.3MB而且在前台,为什么会出现
杀?? :(
- 我只保留定时器运行,该方法只更新现有的
变量,是什么触发了这个 VM:Allocation???
我用 Swift,如果重要的话
谢谢,
原来问题出在 for
循环中。我有一个很大的 for
循环,它做很多赋值,调用 API,等等,每次调用 NSTimer
函数时,有时迭代次数有点太高了VM 分配开始。
我认为答案是在 for
循环中使用 autoreleasepool {}
。从那以后再没有发生过崩溃。
观看这些 WWDC2013 视频在想法方面有一点帮助,但不是直接的。
我的应用程序使用 NSTimer 变量,它使用 NSNotificationCenter.postNotificationName 到 post 每秒通知 UIViewController class。
问题是应用程序偶尔崩溃,没有堆栈跟踪,这意味着这是一个内存问题。
在 Instruments 中,发生这种情况是因为 VM:Allocation 增加了 1.78MB。分配只是随机发生的。
这是我启动计时器后的样子:
这是我开始计时几分钟的时间
我没有看到堆栈跟踪或任何东西。我该如何进行调试 这个?
应用只用了7.3MB而且在前台,为什么会出现 杀?? :(
- 我只保留定时器运行,该方法只更新现有的 变量,是什么触发了这个 VM:Allocation???
我用 Swift,如果重要的话
谢谢,
原来问题出在 for
循环中。我有一个很大的 for
循环,它做很多赋值,调用 API,等等,每次调用 NSTimer
函数时,有时迭代次数有点太高了VM 分配开始。
我认为答案是在 for
循环中使用 autoreleasepool {}
。从那以后再没有发生过崩溃。
观看这些 WWDC2013 视频在想法方面有一点帮助,但不是直接的。