Page MenuHomePhabricator

eo-files: reorder some functions
Needs ReviewPublic

Authored by bu5hm4n on Mar 20 2020, 7:20 AM.

Details

Summary

this started earlier today in IRC, the idea was that now, that we are
having a denser memory layout in the vtables, we could simply reorder
the functions in the .eo files into groups that are often called next to
each other, that rises the chance that the Vtable nodes as well as the
chains are still in the cache.

After searching a bit for these groups, the below changed .eo files came
up. When a object is constructed, we call a lot parent set constructor
finalizer and provider find stuff. So moving these together seems
logical.
During rendering we also call a lot of gfx hints, which is also paying
off, our cache miss number goes down quite a bit.

cache misses averages: (Messured on a Dell XPS i7-7700HQ)

without this: 8945471
with this: 8014886

Depends on D11539

Diff Detail

Repository
rEFL core/efl
Branch
devs/bu5hm4n/work_eo_final
Lint
Lint OK
Unit
No Unit Test Coverage
Build Status
Buildable 16373
bu5hm4n created this revision.Mar 20 2020, 7:20 AM
bu5hm4n requested review of this revision.Mar 20 2020, 7:20 AM

Even if this pays off, i dont know if its really worth it doing that, as the reordering of .eo files seems quite a bit random. Do we really want that ? I will just put the revision here so we can discuss it, maybe we need a better way to do this. (This is also a heavy platform specific depending topic)

This should only affect the C implementation code. We should likely alphabetize any doc generation (cc @segfaultxavi) so that we get consistent docs generated regardless of eo file ordering.

Classes and methods inside classes are already sorted alphabetically in C docs:
https://www.enlightenment.org/develop/api/efl/object
and in C# docs:
https://enlightenment.github.io/www-content/gh-pages/api/csharp/api/Efl.Object.html
so don't worry about me.