我是用Unity啊.. Java有睇過但冇深究...
Unity唔可以好似你咁講.. 唔做garbage collect特別係scene多.. ...
7h1r733n 發表於 2015-6-16 02:29 
那你搞清楚所謂 "拖死部電話" 是 OutOfMemory 還是只是它只在做 full GC 拖慢部電話吧, 係 android 部手機一段時間內沒有回應便會 prompt 你 close / wait, 跟 OutOfMemoryError 即彈 app 不同啊.
無論是 Java / .net / Android Dalvik, 到最後關頭都一定會行一個 stop-the-world full GC, 即係停哂這個 app 的所有 processes 然後做 Full GC, 如果 reclaim 哂所有 garbage 都無空間 allocate new objects 先會 OutOfMemory
前文你所講 OutOfMemory 原因是沒有做好 GC.collect, 又說這是 "常識" 及沒有做的就屬於 "廢人寫廢Code", 這說法我應為很有偏差. 如果你吾認識 java 或吾熟識 jvm garbage collector 就最好不要亂說.
就算是 Unity, 我認為就算你沒有 call GC.Collect, Android Dalvik 也會於爆 Ram 時做一次 full gc,
call GC.Collect 只係因為吾想係吾適當o既時候突然爆個 full GC, 跟 OutOfMemory 無關.
留意我沒有認為你於轉 scene 時 call GC 係錯, 只係想你搞清楚咩情況下會出現 OutOfMemory. |