D'ar merc'her 20 a viz Meurzh 2013 e 19 eur 32, « Daniel Willmann » he deus 
skrivet :
> On 20/03/13 17:48, Daniel Willmann wrote:
> > On 20/03/13 13:55, Bertrand Jacquin wrote:
> >> Le mercredi 20 mars 2013 à 14h53, « Daniel Willmann » a écrit :
> >>> On 20/03/13 13:41, Bertrand Jacquin wrote:
> >>>> Just upgraded to 1GB for temporary files. I still does not understand
> >>>> what does need more than 128MB of space disk for temporary files. I
> >>>
> >>> Thanks.
> > 
> > We just hit this issue again - this time with the 1GB space...
> > I debugged more on my local machine, here is the setup:
> > 
> > Running
> > watch -n 1 -d df -k /tmp/
> > 
> > in one terminal I ran make check on efl.
> > 
> > Before running make check that filesystem used 70989912 1k blocks (so
> > roughly 7GB - it's just one big partition for /) somewhere during the
> > Eina checks the disk usage sky-rocketed to 71308212. This means that
> > during make check as much as 300MB are consumed, which is really less
> > than ideal. :-(
> > (And would explain why even with 1GB space four concurrent builds might
> > fail)
> > 
> > I will investigate further.
> 
> The issue is eina_list_shuffle and its use of fail_if. Every fail_if()
> call will call send_loc_info() (no matter if the expression is false or
> not). This emits the current file name and line number to the temporary
> file libcheck uses to communicate.
> 
> All that would not be a problem, BUT....
> fail_if is called in a loop which is run 100000 times. Within that loop
> fail_if is called inside another loop which iterates 100 times.
> 
> So if my math is correct this alone results in roughly 10 million calls
> to fail_if() (and thus send_loc_info()).
> 
> Assume now that the file name is "eina_test_list.c", so it contains 16
> characters (not including \0). There is some more overhead involved in
> packing that message within libcheck, one int for the type, one int for
> the length of the string and one int for the line number.
> 
> Each of these fail_if invocations would write 28 bytes to this temporary
> file. Multiply that with the number of invocations and you get way over
> 200MB from this test alone...
> 
> So that's where the problems originate. I'll rewrite the tests to not
> use fail_if in the hot path which should also cut down the time
> eina_suite needs considerably.

Good job man ! Like to read that kind of investigation :) Nice shot

-- 
Beber

Attachment: pgppsxLsTRPnB.pgp
Description: PGP signature

------------------------------------------------------------------------------
Everyone hates slow websites. So do we.
Make your web apps faster with AppDynamics
Download AppDynamics Lite for free today:
http://p.sf.net/sfu/appdyn_d2d_mar
_______________________________________________
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel

Reply via email to