Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我有一个仅为 iOS 7 构建并在 iPhone 5S 上运行的应用程序。该应用程序有时在正常使用中只是冻结并且无法识别发生任何触摸交互,并且需要强制退出该应用程序。我注意到它在执行许多不同的任务和不同的视图。我在调试时遇到了这个问题,RAM 使用率约为 65 Mb,我认为这非常好,cpu 使用率是个位数,调试器没有崩溃。在调试和尝试解决这个非常严重的问题方面,我可以从哪里开始?
将我的评论作为答案,通常当您的应用程序冻结时,这意味着 CPU 正在做一些繁重的工作,或者您在某处遇到了死锁。正如您提到的,这是 CPU 使用率低,我的第一个猜测是死锁。
感谢 Leo Natan 提出这是僵局,因为确实如此。有一个特定的实例,我正在从后台线程保存和获取,并且有一个简单的解决方案可以让我停止在后台线程上获取。
对我来说,这是一个无休止的 while 循环。通过暂停进程并检查堆栈跟踪找到它。