我的应用程序使用了相当多的内存,因此它经常被看门狗杀死。为了减少内存消耗(还改变了其他一些东西),我重写了一些系统函数(准确地说,替换了几个CoreText类)。
这实际上进行得很好,我已经设法减少了大约3MB的内存消耗(根据分配和内存监控仪器)。
尽管如此,现在我的应用程序很快就被watchdog杀死了。当旧版本仍在工作时(即使消耗更多内存),新版本会被操作系统终止。
我认为这可能是由于过度使用malloc/free来分配/释放堆上的大量小结构造成的。
是这样吗?
还有什么其他问题可能会导致这种行为(内存消耗减少/看门狗更快地杀死应用程序)?
会不会是因为现在是我的应用程序在管理内存,而不是系统库?
发布于 2010-08-19 23:30:10
如果你有一只看门狗,那就意味着你太长时间没有反应了。您需要将一些代码放在适当的位置,以更新您正在忙的用户。您还应该在屏幕上提供取消功能,以允许用户中止耗时过长的进程。
https://stackoverflow.com/questions/3523318
复制相似问题