我正在寻找与iPhone上可用的-(void)applicationDidReceiveMemoryWarning:(UIApplication *)application方法等效的方法。到目前为止,我什么都找不到,但是我想在开始编写自己的东西之前先进行检查。

最佳答案

Mac OS X上的内存与OS X Touch不能完全相同。值得注意的是,台式机具有更多的RAM,并且会在应用程序需求增加时将内存交换到磁盘。同样,有许多应用程序在争夺资源。

真正的问题是您要完成什么?

如果答案是有效使用内存,那么您需要集中精力最小化分配,确保没有泄漏,并确保数据结构得到优化。在Instruments中使用ObjectAlloc来分析内存使用情况并找出需要关注的地方。

但是,如果答案更多,我有一个高速缓存子系统,可以从大量内存中受益,但是当其他应用程序增加需求时,我想将其归还给系统,那么您将需要研究Snow Leopard's Caching and Purgeable Memory支持。

值得注意的是,这两个API提供了一种主动缓存数据的方法,只要它们是系统资源,当它们存在内存压力时就退回或回馈系统。

10-05 18:15