2011-07-20 30 views
13

我想知道如何在Mac OS X上「清理」內存。如果您安裝了開發人員工具,則可以使用purge命令清除內存。但是,如果安裝的開發工具是而不是,則此命令將不起作用。其他應用程序能夠做到這一點,所以我知道這是可能的。OS X應用程序如何「清潔」內存?

如何編寫一個應用程序來「清理」內存,這意味着刪除不活動的內存並在可用內存中提供更多空間?

+0

好問題。我一直想知道這些應用程序是如何做到的。我猜他們不能使用私人API,或者他們會被從Mac App Store中踢走。 –

+12

他們不,真的。他們只是吃盡可能多的內存來強制其他應用程序清除。 –

+0

我的朋友告訴我,這看起來好像可能因爲「脫離主題」而關閉。這與編程有關:/ – Yep

回答

5

一個解決方法是malloc儘可能多的內存,然後釋放該內存。看到另一個例子採取下面的代碼:

ints = size/sizeof(unsigned int); 

unsigned int* mem; 
mem = (unsigned int*) malloc(size); 

for (i=0; i<ints; i++) { 
    mem[i] = rand(); 
} 

free(mem); 

當然它是由你來決定通過清除內存你的意思,多少對malloc。

+0

關於請注意: - >決定分配多少的最佳方法是什麼? –