efl/src/tests
Marcel Hollerbach 93a701d065 eo: rework vtable allocation scheme
with this commit a new way of allocating vtables arrived.
The old mechnism was to allocate a table big enough to carry *all*
functions at once, in order to not allocate that much memory for
functions that are not implemented on a specific klass, dichchains have
been used, which can be seens as a 2D matrix, where columns are only
allocated if min 1 entry needs to be written, this may have been a good
way to allocate back in the day when all this with eo started, however,
it showed to not pay off.

With this new way, we allocate a array of arrays. the first lvl array is
carrying enough slots, that *all* up to the time defined
interfaces/classes/abstracts/mixins can be implemented. The second lvl
array then has exactly the size of the defined APIs. The second lvl
array is obviously only allocated if needed.

When comparing the two methods, i messured two things, the usage based
on memory allocation for vtable-way-1 and vtable-way-2. Additionally, i
checked the overall memory usage of elementary_test using pmap. The
first messurement is a little bit more exact. The second messurement is
more biased, but captures the whole picture.

Memory allocation tracking:
   vtable-way-1 - vtable-way-2 = 74680 Byte

Pmap memory tracking:
   vtable-way1 - vtable-way-2 = 217088 Byte

The second messurement shows a bigger impact, likely because this is
also showing off all the sideeffects that we are taking place due to
fewer allocations.

Differential Revision: https://phab.enlightenment.org/D11535
2020-03-20 19:46:06 +01:00
..
ecore ecore_evas: Introduce cnp / dnd API for ecore evas 2020-03-08 10:59:25 +01:00
ecore_audio_cxx cxx: Add license to CXX bindings. 2019-10-24 10:40:16 -03:00
ecore_con tests/ecore_con: clarify pointer usage in ecore_con_url tests 2019-10-18 13:29:57 -04:00
ecore_cxx cxx: Add license to CXX bindings. 2019-10-24 10:40:16 -03:00
ecore_wl2 tests/ecore_wl2: Fix check for Enlightenment compositor 2020-01-29 09:01:06 -05:00
ector
edje Fix worning and tests for edje text_class 2020-01-07 14:28:46 +01:00
edje_cxx cxx: Add license to CXX bindings. 2019-10-24 10:40:16 -03:00
eet fix various trivial null derefs 2019-10-18 13:30:10 -04:00
eet_cxx cxx: Add license to CXX bindings. 2019-10-24 10:40:16 -03:00
eeze
efl efl: add test for efl_model_children_index_get. 2020-01-31 10:11:40 -08:00
efl_js bindings-cxx: fix missing @since tags at stable c#/cpp tests 2020-02-05 17:15:33 +01:00
efl_mono mono-tests: Fix build after DnD changes 2020-03-08 11:01:21 +01:00
efreet make mman.h private 2019-08-19 09:55:13 -04:00
eina eina_content: fix use after free in test code 2020-03-09 13:13:00 +01:00
eina_cxx bindings-cxx: fix missing @since tags at stable c#/cpp tests 2020-02-05 17:15:33 +01:00
eio Fix build with gcc 10 (which has -fno-common enabled by default). 2020-01-31 14:31:57 +01:00
eldbus tests/eldbus: add va_end for va_args usage in message test 2019-10-18 13:28:48 -04:00
eldbus_cxx cxx: Add license to CXX bindings. 2019-10-24 10:40:16 -03:00
elementary efl.ui.textbox: load default font properties once 2020-03-20 15:58:06 +01:00
elementary_cxx cxx: Add license to CXX bindings. 2019-10-24 10:40:16 -03:00
elput
elua tests: fix warnings and undef ref on Windows (using meson :-) ) 2019-06-20 12:50:35 +01:00
emile emile_test_base64: Fix memory leak 2019-05-02 13:48:22 +02:00
emotion meson: correctly use the correct dependency 2019-04-05 08:15:39 -04:00
eo eo: rework vtable allocation scheme 2020-03-20 19:46:06 +01:00
eo_cxx cxx: Add license to CXX bindings. 2019-10-24 10:40:16 -03:00
eolian bindings-cxx: fix missing @since tags at stable c#/cpp tests 2020-02-05 17:15:33 +01:00
eolian_cxx eolian_cxx: fix a last few since errors 2020-02-05 19:42:44 +01:00
eolian_js bindings-cxx: fix missing @since tags at stable c#/cpp tests 2020-02-05 17:15:33 +01:00
evas tests/evas: verify loading and mmap values for efl.file are correct with skip_head 2020-03-06 13:30:52 +01:00
evas_cxx cxx: Add license to CXX bindings. 2019-10-24 10:40:16 -03:00
evil remove last bits of Evil.h in tests and use evil_private.h instead 2019-06-24 09:01:25 -04:00
.gitignore
efl_check.h efl-check: do not print expected errors 2020-02-14 09:01:10 +01:00
meson.build
timeout.c