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
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