I don't know why the goto data structure in Efl is Eina_List.
Maybe because it is convenient or maybe people just copy form one place and modify which has a network effect (if i see a piece of code more often will just follow same pattern).
As we know by now List is the Worst data structure in terms of performance even if we need random insert and deletion and yet I don't see much use of Eina_Array and few use of Eina_Inlist.
Eina_List specially messes Cache Locality and of course we do lot of pointer hopping which means greater chance of Cahe Miss ( which is the main reason for slowness in program).
Here is a memory snapshot of elementary_test app startup.
And I fill the eina_mempool is really masking the problem (because we don't see individual malloc and fee because of this ) as well as our memory access pattern in Efl.
I believe if we start refactoring by converting those data structure from Eina_List to Some Data Structure (which can store the POD(Plain Old Data) objects in contiguous memory we can improve the overall performance of Efl App.
And maybe we should review how many mempool we have and are we effectively using them (whats % memory is used in a particular mempool ) because these mempools are usually big (4k - 64k) .