aboutsummaryrefslogtreecommitdiffstats
path: root/src/lib/evas/canvas/evas_object_polygon.c
diff options
context:
space:
mode:
authorCarsten Haitzler (Rasterman) <raster@rasterman.com>2017-02-04 11:31:55 +0900
committerCarsten Haitzler (Rasterman) <raster@rasterman.com>2017-02-04 11:49:56 +0900
commit51638afbebc225b5a550eb87a0e74c53d866ed2e (patch)
tree6e81cbbef92cd7d6379d659326b9dc1edbe34377 /src/lib/evas/canvas/evas_object_polygon.c
parentecore_evas: use ecore_timer_loop_add for idle timeout update (diff)
downloadefl-51638afbebc225b5a550eb87a0e74c53d866ed2e.tar.gz
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.
Diffstat (limited to 'src/lib/evas/canvas/evas_object_polygon.c')
-rw-r--r--src/lib/evas/canvas/evas_object_polygon.c10
1 files changed, 5 insertions, 5 deletions
diff --git a/src/lib/evas/canvas/evas_object_polygon.c b/src/lib/evas/canvas/evas_object_polygon.c
index 45cb103589..9707712eaa 100644
--- a/src/lib/evas/canvas/evas_object_polygon.c
+++ b/src/lib/evas/canvas/evas_object_polygon.c
@@ -405,17 +405,17 @@ evas_object_polygon_render_pre(Evas_Object *eo_obj,
}
static void
-evas_object_polygon_render_post(Evas_Object *eo_obj,
- Evas_Object_Protected_Data *obj EINA_UNUSED,
- void *type_private_data EINA_UNUSED)
+evas_object_polygon_render_post(Evas_Object *eo_obj EINA_UNUSED,
+ Evas_Object_Protected_Data *obj,
+ void *type_private_data EINA_UNUSED)
{
/* this moves the current data to the previous state parts of the object */
/* in whatever way is safest for the object. also if we don't need object */
/* data anymore we can free it if the object deems this is a good idea */
/* remove those pesky changes */
- evas_object_clip_changes_clean(eo_obj);
+ evas_object_clip_changes_clean(obj);
/* move cur to prev safely for object data */
- evas_object_cur_prev(eo_obj);
+ evas_object_cur_prev(obj);
}
static unsigned int evas_object_polygon_id_get(Evas_Object *eo_obj)