On Sat, Jan 30, 2010 at 5:16 PM, Waldek Hebisch <firstname.lastname@example.org>
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.
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%
That would be mostly absent in the latest version.