This task is about small improvement we could do on edje file format without having to rewrite everything. Let's gather idea here and look into implementing them later next year. I will start:
- Eet file format use a double linked list in the hash used by the strings dictionary. Over time we have started to ignore it and use it as a single list, but we are still wasting space there. With the large amount of strings we do have now, it would be nice to use the same space, but for a rbtree which would make walking and discovering strings faster (We can not use Eina_Hash, as that hash is flat in the file and require to use indexes instead of pointers).
- Edje currently walk all the part to find one that use seat. We could do that at compilation time and just store a boolean for it.
- Edje at first recalc now will walk all the part to find the text one only. Instead of doing a full walk, we could have a secondary array with index of part that are text part and just walk that array and jump directly to the part we need.
The last two proposal are very easy to do and will impact edje file version. The first one will impact eet file version and would, if done correctly, be a first step toward a fully mmapped eet file format.