TLDR: Dalvik bellek ayırmada iyi değildi ve Enum
daha fazla bellek kullanıyor int
. Android Lollipop, Dalvik'i aynı sınırlamalardan muzdarip olmayan ART ile değiştirdi. Dolayısıyla bu öneri artık geçerli değildir.
Uzun cevap:
Vaov! 8 yıl, 5 cevap ve birçok yorum sonra gerçek neden hala ele alınmamıştır.
Lolipop öncesi Android günlerinde Dalvik, VM'nin kullandığı süreçti. Bu süre zarfında uygulamaların kullanabileceği az miktarda bellek bulunduğundan, Dalvik'in çok fazla bellek kısıtlaması vardı. Bellek tahsisi için Dalvik yığını yürümek ve yer bulmak zorunda kaldı. Öbek ayrıca zamanla parçalanır. Dalvik birleştiremedi, bu yüzden zamanla tahsis eder ve sonunda yer kalmaz.
Yalnızca İçeri İhtiyacınız Olan Numaralandırmalardan Kaçının
bir Dalvik gün gelir çünkü bir Enum
bir çok daha büyük int
ve bellek ayırma çok pahalı.
Bugün hızlı bir şekilde ilerleyen Dalvik'in yerini ART aldı. ART KitKat'ta çıktı ve Lollipop'tan beri varsayılan.
ART, hafızayı optimize etmek için değil, performans için optimize etmek için oluşturuldu. Ayrıca tahsisler ve koleksiyonlar için optimize edilmiştir. Bunun nedeni, büyük nesneler için ayrılmış bir belleğe sahip olmasıdır. ART, her şeyi aynı öbeğe koymak ve sonra tüm minik nesnelerin arasında büyük nesneler için yer bulmak yerine, tüm büyük nesneleri ve bitmap'leri ayrı bir yığın haline getirir. Ve sonra küçük nesneler ayrı yığın halinde gider. Ayrıca birleştirebilir.
ART sonrası, Enum
Android kullanıyorsanız umursamıyor ve bu yüzden tavsiye şimdi gitti.
Bu, Google'daki Chet Haase'den geliyor. Google I / O konuşmasını bulmanızı ve tüm videoyu izlemenizi öneririm. Android hakkında birçok yararlı bilgi ve bilgi içerir.