efl/src
Carsten Haitzler 51638afbeb evas render - drop eo overhead by using ptrs we already have
several calls, specifically evas_object_change_reset,
evas_object_cur_prev, and evas_object_clip_changes_clean that are
called directly or indirectly as part of evas render on at least every
active object if not more, were doing full eo obj lookups when their
calling functions already all had the eo protected data looked up.
tha's silly and just adds overhead we don't need. my test dropped
_eo_obj_pointer_get overhead in perf profiles from 4.48% to 2.65%. see:

   4.48%  libeo.so.1.18.99            [.] _eo_obj_pointer_get
   4.23%  libevas.so.1.18.99          [.] evas_render_updates_internal
   2.61%  libevas.so.1.18.99          [.] evas_render_updates_internal_loop
   1.68%  libeo.so.1.18.99            [.] efl_data_scope_get
   1.57%  libc-2.24.so                [.] _int_malloc
   1.42%  libevas.so.1.18.99          [.] evas_object_smart_changed_get
   1.09%  libevas.so.1.18.99          [.] evas_object_clip_recalc.part.37
   1.08%  libpthread-2.24.so          [.] pthread_getspecific
   1.05%  libevas.so.1.18.99          [.] efl_canvas_object_class_get
   1.01%  libevas.so.1.18.99          [.] evas_object_cur_prev
   0.99%  libeo.so.1.18.99            [.] _efl_object_event_callback_legacy_call
   0.87%  libevas.so.1.18.99          [.] _evas_render_phase1_object_ctx_render_cache_append
   0.82%  libpthread-2.24.so          [.] pthread_mutex_lock
   0.81%  libevas.so.1.18.99          [.] _evas_render_phase1_object_process
   0.79%  libc-2.24.so                [.] _int_free

vs now the improved:

   4.82%  libevas.so.1.18.99          [.] evas_render_updates_internal
   3.44%  libevas.so.1.18.99          [.] evas_render_updates_internal_loop
   2.65%  libeo.so.1.18.99            [.] _eo_obj_pointer_get
   2.22%  libc-2.24.so                [.] _int_malloc
   1.46%  libevas.so.1.18.99          [.] evas_object_smart_changed_get
   1.04%  libeo.so.1.18.99            [.] _efl_object_event_callback_legacy_call
   1.03%  libevas.so.1.18.99          [.] _evas_render_phase1_object_ctx_render_cache_append
   0.97%  libeina.so.1.18.99          [.] eina_chained_mempool_malloc
   0.93%  libevas.so.1.18.99          [.] evas_object_clip_recalc.part.37
   0.92%  libpthread-2.24.so          [.] pthread_mutex_lock
   0.91%  libevas.so.1.18.99          [.] _evas_render_phase1_object_process
   0.84%  libc-2.24.so                [.] _int_free
   0.84%  libevas.so.1.18.99          [.] evas_object_cur_prev
   0.83%  libeina.so.1.18.99          [.] eina_chained_mempool_free
   0.80%  libeo.so.1.18.99            [.] efl_data_scope_get

of course other things "increase their percentage" as oe overhead now
dropped, and things seem to move around a bit, but it does make sense
to do this with no downsides i can see as we already are accessing the
protected data ptr in the parent func.
2017-02-04 11:49:56 +09:00
..
benchmarks
bin ifdef RUN_IN_TREE logic. 2017-02-03 12:36:38 -02:00
bindings eolian: move base function doc API into implements 2017-01-19 15:09:07 +01:00
edje_external edje_external Multibuttonentry: Fix useless logic. 2016-11-30 13:22:29 +09:00
examples edje: change seat signals 2017-02-01 17:19:32 -02:00
generic eina: rename EINA_{FLT,DBL}_CMP to EINA_{FLT,DBL}_EQ. 2017-01-06 15:58:46 -08:00
lib evas render - drop eo overhead by using ptrs we already have 2017-02-04 11:49:56 +09:00
modules evas gl common - reduce data structure sizes got gl common context 2017-02-01 16:08:04 +09:00
scripts docgen: link to the method an overriden one overrides 2017-01-26 17:52:00 +01:00
static_libs cmake: add EFL_SUPPORT_LIB() and simplify/speedup its usage. 2017-01-27 12:52:14 -02:00
tests ifdef RUN_IN_TREE logic. 2017-02-03 12:36:38 -02:00
utils/ecore
wayland_protocol ecore_wl2: Auto generate www protocol 2017-01-18 13:04:48 -06:00
CMakeLists.txt build: switch eina to half baked cmake 2017-01-23 18:23:40 +01:00
CMakeLists_Eina.txt build: switch eina to half baked cmake 2017-01-23 18:23:40 +01:00
Makefile.am build: Add rules to auto-generate wayland headers from protocol xml 2017-01-18 13:04:47 -06:00
Makefile_Cxx.am Rename Efl.hh to Efl.eo.hh in CLEANFILES 2017-01-19 22:48:59 -02:00
Makefile_EPhysics.am
Makefile_Ecore.am efl_io_buffered_stream: wraps an I/O object and make it easy to use. 2016-11-25 17:27:32 -02:00
Makefile_Ecore_Audio.am
Makefile_Ecore_Avahi.am
Makefile_Ecore_Buffer.am
Makefile_Ecore_Cocoa.am
Makefile_Ecore_Con.am ecore_con - move libproxy to a slave binary with stdin/out msging 2017-01-09 15:29:33 +09:00
Makefile_Ecore_Drm.am
Makefile_Ecore_Drm2.am
Makefile_Ecore_Evas.am
Makefile_Ecore_FB.am
Makefile_Ecore_File.am
Makefile_Ecore_IMF.am build: Fix screw up with wayland header auto generation 2017-02-01 11:29:40 -06:00
Makefile_Ecore_IMF_Evas.am
Makefile_Ecore_Input.am
Makefile_Ecore_Input_Evas.am
Makefile_Ecore_Ipc.am
Makefile_Ecore_Js.am
Makefile_Ecore_Psl1ght.am
Makefile_Ecore_SDL.am
Makefile_Ecore_Wayland.am
Makefile_Ecore_Win32.am
Makefile_Ecore_Wl2.am build: Fix screw up with wayland header auto generation 2017-02-01 11:29:40 -06:00
Makefile_Ecore_X.am
Makefile_Ector.am cmake: add EFL_SUPPORT_LIB() and simplify/speedup its usage. 2017-01-27 12:52:14 -02:00
Makefile_Edje.am
Makefile_Edje_Helper.am
Makefile_Eet.am
Makefile_Eet_Helper.am
Makefile_Eeze.am eeze: move binaries into subdirectories 2017-02-03 10:59:04 +01:00
Makefile_Efl.am Menu,Item Interface: Common interface for menu, toolbar and ctxpopup 2016-11-30 17:59:56 +09:00
Makefile_Efl_Js.am eolian-js: Fix compilation of JavaScript binding 2016-11-29 16:43:09 -02:00
Makefile_Efreet.am
Makefile_Eina.am fix build with split eina_modinfo directory. 2017-01-23 18:01:07 -02:00
Makefile_Eio.am
Makefile_Eldbus.am Eldbus: add test suite for eldbus (eldbus_object*) 2017-02-01 13:10:18 +09:00
Makefile_Elementary.am elm_code: Add initial simple syntax highlighting for C code 2017-01-20 22:11:01 +00:00
Makefile_Elocation.am
Makefile_Elput.am elput: Add API functions to enable/disable tap-and-drag 2016-12-14 09:18:14 -05:00
Makefile_Elua.am
Makefile_Elua_Helper.am
Makefile_Embryo.am
Makefile_Emile.am
Makefile_Emotion.am
Makefile_Eo.am eo: do not use eina_trash when running on valgrind. 2016-12-03 10:35:27 -02:00
Makefile_Eolian.am eolian tests: pass in generator path externally 2017-01-23 16:14:00 +01:00
Makefile_Eolian_Cxx.am cxx: Modify how to generate C++ headers and allow cyclic dependencies 2017-01-18 22:47:04 -02:00
Makefile_Eolian_Cxx_Helper.am
Makefile_Eolian_Files_Helper.am
Makefile_Eolian_Helper.am
Makefile_Eolian_Js.am eolian-js: Fix compilation of JavaScript binding 2016-11-29 16:43:09 -02:00
Makefile_Eolian_Js_Helper.am
Makefile_Escape.am
Makefile_Ethumb.am
Makefile_Ethumb_Client.am
Makefile_Evas.am build: Fix screw up with wayland header auto generation 2017-02-01 11:29:40 -06:00
Makefile_Evil.am