siuying 積分 0

很難説大部分原因,因為有很多原因。這樣說吧,android app用 vm 有 GC, 閃退會比較少嗎?據我看的統計不是這樣。

這是文章的子討論串,你可以回到上層查看所有討論和文章
IngramChen 積分 0

android app 閃退原因多是 exception,大部份是 NullPointerException。

我不是說 android 有 GC 所以 bug 會比 swift iOS 少,閃退會比較少。我只是說 iOS crash 的原因很多是 dangling pointer,是因為要手動管理記憶體造成的。

這個現象對 server 是不利的。Java 是很多 NPE,但在 server 環境下就只是個 bug 而已,process 還是可以繼續服務。swift 踩到記憶體就是整個 crash,這不利 long running application 啊。(mobile 上到是無所謂)

ARC 也許可以再進化,解決這個問題吧 (例如它找到一個演算法完全解決 circular reference),不然只要讓開發者去寫 unowned 這種東西,就是有機會踩記憶體 crash。(有誰的 app 沒 unowned ??)

siuying 積分 0

我就是說你的推論全錯了,要是 dangling pointer 是 crash 的主因,那在沒有 dangling pointer 的地方就很少 crash 了,對不?