TLDR: Dalvik war nicht gut mit Speicherzuweisung und Enum
verwendet mehr Speicher als int
. Android Lollipop ersetzte Dalvik durch ART, das nicht unter den gleichen Einschränkungen leidet. Somit ist diese Empfehlung nicht mehr relevant.
Die lange Antwort:
Beeindruckend! 8 Jahre, 5 Antworten und viele Kommentare später wird der wahre Grund immer noch nicht angesprochen.
In den Android-Tagen vor dem Lutscher war Dalvik die verwendete Prozess-VM. Da während dieser Zeit nur wenig Speicher für Anwendungen zur Verfügung stand, hatte Dalvik viele Speicherbeschränkungen. Für die Speicherzuweisung musste Dalvik über den Haufen gehen und Platz finden. Der Haufen würde auch mit der Zeit fragmentiert werden. Dalvik konnte nicht defragmentieren, so dass es sich im Laufe der Zeit zuordnete und schließlich keinen Platz mehr hatte.
Vermeiden Sie Aufzählungen, bei denen Sie nur Ints benötigen
kommt aus Dalvik-Tagen, weil ein Enum
viel größer ist als einint
und die Speicherzuweisung sehr teuer war.
Dalvik wurde heute durch ART ersetzt. ART wurde in KitKat veröffentlicht und ist seit Lollipop Standard.
ART wurde von Grund auf entwickelt, um nicht den Speicher, sondern die Leistung zu optimieren. Es ist auch für Zuordnungen und Sammlungen optimiert. Der Grund dafür ist, dass Speicher für große Objekte reserviert ist. Anstatt alles auf den gleichen Haufen zu legen und dann Platz für große Objekte inmitten all der kleinen zu finden, legt ART alle großen Objekte und Bitmaps in einem separaten Haufen ab. Und dann gehen die kleinen Objekte in den separaten Haufen. Auch kann es defragmentieren.
Nach ART ist Enum
es egal , ob Sie Android verwenden, und deshalb ist die Empfehlung jetzt weg.
Dies kommt von Chet Haase bei Google. Ich empfehle, sein Google I / O-Gespräch zu finden und das gesamte Video anzusehen. Es enthält viele nützliche Informationen und Einblicke in Android.