Here are the few issues I found while profiling.
We create Edje_Part_Collection_Directory_Entry for each collection ( button, label , border , bg etc).
This internally creates 33 different mempools (16 per normal and 16 for rtl)
The memory footprint for creating 33 mempool is around 7KB. (Note its only the mempool bookkeeping overhead mempol, backend etc).
If you look closely both RTL and normal creates same kind of objects( ex: for both normal and rtl we create Edje_Part_Description_Text object and so on)
So only using same mempool for both normal and rtl should be fine.
I don't know the reason of creating Edje_Part_Collection_Directory_Entry per collection instead of keeping a global Edje_Part_Collection_Directory_Entry which I think will be more memory efficient as same object of different collections will get allocated in one pool. In this case we have to change the mempool type from "one_big" to "chained_pool".
If you guys think this is a bug needs to be fixed. I will raise a patch for the same.
If there is a valid reason to keep those mempools separate per collection , then will close this issue.