On Sat, Jan 30, 2010 at 5:16 PM, Waldek Hebisch <hebisch@math.uni.wroc.pl> wrote:
Here is what oprofile tells me on my machine (this is not
the newest ECL, if register change is commited I can retest
with newest version):

Thanks for providing new evidence. I did not know about oprofile -- seems to do a similar job as OS X's Shark, which is good.
Top symbols:

8276     45.3479  5423     57.2530  libgc.so.1.0.3   ecl  GC_mark_from

This is what I do not understand and what I also see in the Mac. GC_mark_from is taking too much time. I have the feeling that the garbage collector is too eager in marking, looking at regions of memory that have not really changed between garbage collections and misidentifying too many pointers. Part of this may be due to ECL's mark routine. Maybe this can be improved by using dedicated mark routines, as gcj does.
3149     17.2548  738       7.7914  libgmp.so.3.4.2  ecl  __gmpn_add_n
1699      9.3096  349       3.6845  libc-2.8.so      ecl  memcpy
1130      6.1918  688       7.2635  libgc.so.1.0.3   ecl  GC_header_cache_miss
1046      5.7315  932       9.8395  libgmp.so.3.4.2  ecl  __gmpn_mul_1

Gc part looks bad.  But 10% in memcpy is not negligibe compared to 25%
in libgmp.so.3.4.2.

That would be mostly absent in the latest version.


Instituto de Física Fundamental, CSIC
c/ Serrano, 113b, Madrid 28006 (Spain)