我在做一些應用程序(服務器和客戶端)。我有一個觀點,我需要調用System.gc();Java和調用垃圾收集
但是我發現這裏Why is it bad practice to call System.gc()?不推薦打電話GC。
如果我使用System.gc()的程序運行在80MB〜內存,但沒有GC,內存長大到約600-700MB,我需要在Android手機上運行它
是否有其他方法清除記憶?
感謝
編輯:看評論,在Android作爲我已經測試(移植1小時前),用System.gc()的運行良好,我還沒有測試它
EDIT 2 :這裏有兩張照片,5分鐘後在桌面上運行的程序:
隨着System.gc()的:http://imgur.com/M9yMBei 沒有的System.gc():http://i.imgur.com/4qb2Ylc.png
編輯3:WOW! 1之前發佈這個應用程序是使用約2GB的RAM!
600 MB的堆? – Blackbelt
GC將回收的對象* *時,它可以(和* *時,它認爲它需要) - 用於如Android系統的關鍵是要設計這樣可以一次裝載不沒有那麼多需求的應用程序。這就是爲什麼視圖在Android中具有自包含的生命週期等等:設計是爲了限制工作足跡。 – user2864740
澄清:無需調用'System.gc()',當在移動設備上運行時,內存增長至600,700 MB * *?或者,您是否正在桌面機上使用桌面JRE進行這些測試? – delnan