From: Han-Wen <hanwen@cs.uu.nl>
Cc: Dirk Herrmann <dirk@sallust.ida.ing.tu-bs.de>,
guile-devel@gnu.org, guile-user@gnu.org
Subject: Re: status: separation of expansion/optimization/memoization/execution
Date: Sat, 3 Aug 2002 01:47:13 +0200 [thread overview]
Message-ID: <15691.6657.152046.388673@blauw.xs4all.nl> (raw)
In-Reply-To: <87sn1w6eeu.fsf@raven.i.defaultvalue.org>
rlb@defaultvalue.org writes:
>
> BTW has anyone else played with valgrind
> http://developer.kde.org/~sewardj/docs/manual.html? I'm planning to
> play with it, but so far have only had a chance to see that it doesn't
> like some of our ptr manipulations. I also wonder if cachegrind might
> be able to tell us anything useful...
Yes, I tried running it on lilypond (which is linked to GUILE). I got
a ton of warnings that was not able to suppress (it seems that the
suppressions don't work for valgrind internal functions, like
strncmp). Running valgrind for checking is probably pointless for
GUILE, as GUILE manages its own memory; the stack scanning GC also
generates lots of spurious warnings.
I did run it through the CPU cache simulator, which indicated that
gc_mark, gc_sweep and scm_ceval are causing a lot of cache misses. I
hope to improve the GC part when I can compile guile with GCC 3.1 ;
GCC 3.1 supports prefetch instructions, so cache misses can be
decreased by doing stuff like
mark_cons:
prefetch (cdr)
scm_gc_mark (car)
ptr = cdr;
goto mark_again;
probably there are some techniques to boost cache rates for eval() as
well.
This is with the java-tree GC benchmark:
--------------------------------------------------------------------------------
I1 cache: 16384 B, 32 B, 4-way associative
D1 cache: 16384 B, 32 B, 4-way associative
L2 cache: 524288 B, 32 B, 4-way associative
Command: ./libguile/.libs/lt-guile -s /tmp/graphs.sch
Events recorded: Ir I1mr I2mr Dr D1mr D2mr Dw D1mw D2mw
Events shown: Ir I1mr I2mr Dr D1mr D2mr Dw D1mw D2mw
Event sort order: Ir I1mr I2mr Dr D1mr D2mr Dw D1mw D2mw
Thresholds: 99 0 0 0 0 0 0 0 0
Include dirs:
User annotated:
Auto-annotation: off
--------------------------------------------------------------------------------
Ir I1mr I2mr Dr D1mr D2mr Dw D1mw D2mw
--------------------------------------------------------------------------------
566,304,440 177,926 22,634 214,093,739 5,330,222 439,850 60,193,298 122,340 31,098 PROGRAM TOTALS
--------------------------------------------------------------------------------
Ir I1mr I2mr Dr D1mr D2mr Dw D1mw D2mw file:function
--------------------------------------------------------------------------------
188,450,666 28,572 4,577 69,348,246 1,248,161 6,579 18,620,442 22,047 84 eval.c:scm_ceval
94,460,034 1,574 368 31,701,931 1,627,987 249,416 7,924,122 14,992 1,579 gc-mark.c:scm_gc_mark_dependencies
90,846,605 7,899 114 38,685,160 620,624 134,205 5,581,738 746 8 gc-card.c:scm_sweep_card
36,806,561 479 76 12,092,342 63,732 79 1,526,389 0 0 eval.c:scm_ilookup
36,027,996 92 11 11,734,622 487,301 2,201 5,880,036 14,057 1,682 gc-mark.c:scm_gc_mark
12,369,948 642 642 5,936,102 422,488 9,297 1,083,306 0 0 weaks.c:scm_mark_weak_vector_spines
11,620,162 652 652 4,374,134 353,606 1,097 1,193,150 47 0 weaks.c:scm_scan_weak_vectors
11,124,410 873 37 5,781,750 106,113 38 2,669,915 7 0 ../libguile/inline.h:scm_acons
7,826,240 6,519 337 2,201,130 67,895 173 733,710 0 0 vectors.c:scm_vector_ref
7,241,746 448 5 3,897,614 67,863 27 1,671,236 20 0 ../libguile/inline.h:scm_cons
7,217,944 902 232 1,740,251 4,410 4 1,332,234 3,415 10 eval.c:scm_eval_args
6,957,761 16,749 1,561 6,956,140 54,050 2,073 702 6 6 ???:???
--
Han-Wen Nienhuys | hanwen@cs.uu.nl | http://www.cs.uu.nl/~hanwen
_______________________________________________
Guile-devel mailing list
Guile-devel@gnu.org
http://mail.gnu.org/mailman/listinfo/guile-devel
next prev parent reply other threads:[~2002-08-02 23:47 UTC|newest]
Thread overview: 30+ messages / expand[flat|nested] mbox.gz Atom feed top
2002-08-02 22:42 status: separation of expansion/optimization/memoization/execution Dirk Herrmann
2002-08-02 23:15 ` Rob Browning
2002-08-02 23:47 ` Han-Wen [this message]
2002-08-02 23:20 ` Dale P. Smith
2002-08-03 12:12 ` Han-Wen
2002-08-04 1:51 ` Dirk Herrmann
2002-08-04 2:03 ` Han-Wen
2002-08-04 2:05 ` Tom Lord
2002-08-04 2:11 ` Tom Lord
2002-08-04 2:20 ` for example Tom Lord
2002-08-04 2:27 ` i know -- let's play bridge! Tom Lord
2002-08-04 2:46 ` Tom Lord
2002-08-04 2:50 ` Thomas Bushnell, BSG
2002-08-04 2:57 ` Tom Lord
2002-08-04 3:04 ` Thomas Bushnell, BSG
2002-08-04 3:43 ` Tom Lord
2002-08-04 3:53 ` Thomas Bushnell, BSG
2002-08-04 4:03 ` Tom Lord
2002-08-04 4:10 ` Tom Lord
2002-08-04 3:50 ` Tom Lord
2002-08-04 3:55 ` Tom Lord
2002-08-04 3:58 ` Tom Lord
2002-08-05 18:15 ` status: separation of expansion/optimization/memoization/execution Marius Vollmer
2002-08-05 18:11 ` Marius Vollmer
2002-08-07 20:51 ` Dirk Herrmann
2002-08-10 13:01 ` Marius Vollmer
2002-08-14 19:30 ` Dirk Herrmann
2002-08-26 22:11 ` Marius Vollmer
2002-08-05 18:36 ` Neil Jerram
2002-08-07 20:55 ` Dirk Herrmann
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://www.gnu.org/software/guile/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=15691.6657.152046.388673@blauw.xs4all.nl \
--to=hanwen@cs.uu.nl \
--cc=dirk@sallust.ida.ing.tu-bs.de \
--cc=guile-devel@gnu.org \
--cc=guile-user@gnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).