I would definitely advice anyone against enabling "Developer options" on your phone without having a good understanding what those options do. They are hidden and hard to access for a reason.
Such as animation speed. I hate _so much_ all the wobblyness of the GUI! Everything bouncing, sliding, and hovering around. Thankfully one can enable Developer options and set all that stuff to 0x, which effectively disables everything and now the system becomes crisp and instant, as it should be.
Another essential setting for saving much precious battery, is to not have the cellular data active at all times even when WiFi is active. If I come home and enable wifi, I do not want the cellular data to stay active too in the background. It's much better waiting the couple seconds it might take to switch networks, in exchange for some extra juice.
I just added my own tagging to my pointers. I have 48-bit pointers and 16-bit of tagging data.
I replaced all my struct { word type; char* data }; with something like (type << 48) | data. This saves a memory allocation and pointer indirection. It is much faster
So you have a decently sized chunk of RAM set aside for the tag table, more memory bandwidth used up by table lookups, and the cost of the actual tag checks.