Hello,

On Thu, Aug 1, 2013 at 2:03 PM, Jérémy Zurcher <jer...@asynk.ch> wrote:
> what is the purpose of these hooks again,

Improving our tooling. Right now there is at least a few tools that
can use them :
- espion, that does trace every call to elementary and efl to rebuild
a fake application without the application logic. Very useful for
extracting only the EFL part of an application during debugging. That
should make life easier for people that report bugs in there
application and we don't have the mean to build them due to
dependencies or something else.

- a performance tracer that will be able to tell where we loose time
and how we spend our time from event input to the next frame on
screen. Could also be linked with allocation statistic like memprof.

- clouseau could use them to do live update of its tree.

This is just a few set of idea, I am sure that people can come with
other use of it. Maybe there is also use for them by an IDE. Right now
those tool where using LD_PRELOAD on eo_do with some introspection
information.

> these where my numbers         before            and now
>
> simple inc() - 99999 calls
> calls/eo_do()  EO [ns]/call  - EO2 [ns]/call  -  EO2 [ns]/call
> #1              20               25                29
> #3              11               15                17
> #5               9               13                15
> #7               9               12                14
>
> overriden inc - 99999 calls
> calls/eo_do()  EO [ns]/call  - EO2 [ns]/call  - EO2 [ns/call
> #1              46               50                55
> #3              38               37                42
> #5              37               36                39
> #7              36               34                38

Yes, I saw the slow down. I am wondering if we need the
eo2_hook_*do_{pre,post}. I think we could continue to have that
feature by using LD_PRELOAD on eo2_*do_{start,end}. That should lower
the unitary cost of eo_do.

I am also wondering why the overriden case get a 4ns/call increase
when the simple one get a 2ns/call increase.

> could we shut them down on release ??

I would prefer not as this make it impossible to do any analysis.

> class functions and object functions differs from the param list:
>     _CLASS_FUNC have (const Eo_Class *klass, ...)
>           _FUNC have (Eo *objid, void *obj_data, ...)

Yup, saw that, but I am still wondering what is the use case for class function.
--
Cedric BAIL

------------------------------------------------------------------------------
Get your SQL database under version control now!
Version control is standard for application code, but databases havent 
caught up. So what steps can you take to put your SQL databases under 
version control? Why should you start doing it? Read more to find out.
http://pubads.g.doubleclick.net/gampad/clk?id=49501711&iu=/4140/ostg.clktrk
_______________________________________________
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel

Reply via email to