unofficial mirror of guile-devel@gnu.org 
 help / color / mirror / Atom feed
From: "Kjetil S. Matheussen" <k.s.matheussen@notam02.no>
To: "Ludovic Courtès" <ludovic.courtes@laas.fr>
Cc: Bill Schottstaedt <bil@ccrma.Stanford.EDU>,
	guile-devel@gnu.org,
	"Kjetil S. Matheussen" <k.s.matheussen@notam02.no>
Subject: Re: Experience with guile + Boehm GC in SND (Re: New versions of rt-compiler.scm, rt-examples.scm and rt.tex
Date: Mon, 4 Jun 2007 20:00:07 +0200 (CEST)	[thread overview]
Message-ID: <Pine.LNX.4.64.0706041947280.16860@ttleush> (raw)
In-Reply-To: <87vee3k6jo.fsf@laas.fr>

[-- Attachment #1: Type: TEXT/PLAIN, Size: 3228 bytes --]



On Mon, 4 Jun 2007, Ludovic Courtès wrote:

> Hi,
>
> "Kjetil S. Matheussen" <k.s.matheussen@notam02.no> writes:
>
>> libgc (v6.8) was compiled with the --enable-threads=posix only.
>
> So `THREAD_LOCAL_ALLOC' was defined in your libgc build, right?
>

Yes: -DTHREAD_LOCAL_ALLOC=1


>> Running the benchmark program directly in guile gives no
>> difference. Both spent about 50 seconds running the test.
>
> "Directly in Guile" means that you just run:
>
>  $ ./pre-inst-guile gcbench.scm
>
> Is that correct?
>

I have to compile snd against libguile and its header files, so I have two 
guile installed in two different directories, and set LD_LIBRARY_PATH to 
the right place before running. LD_LIBRARY_PATH is set automatically in
the script that starts snd, and for guile I think you use -rpath? :

ldd -r /usr/bin/guile
         linux-gate.so.1 =>  (0xffffe000)
         libguile.so.17 => /usr/lib/libguile.so.17 (0xb7ed2000)


ldd -r /home/kjetil/site/bin/guile
         linux-gate.so.1 =>  (0xffffe000)
         libguile.so.18 => /home/kjetil/site/lib/libguile.so.18 (0xb7ed8000)
         libgc.so.1 => /home/kjetil/site/lib/libgc.so.1 (0xb7ea8000)




>> Inside snd is another matter:
>>
>>
>>           [1]   [2]      [3]
>> Guile gc  96mb  176mb    54s.
>> Boehm gc  99mb  107mb   118s.
>>
>>
>> [1] Memory before running test reported by top.
>> [2] Memory after running test reported by top
>> [3] Time to run test in seconds.
>
> What does "inside snd" mean exactly?
>

Snd has its own REPLs which interacts with libguile.


> Is snd multi-threaded?  Does it use `scm_without_guile ()' for instance
> (e.g., when a thread blocks for I/O)?
>

No, not when snd is being run standalone.


> Does the second run of `gcbench.scm' within Guile alone (no snd) show
> similar performance behavior in the libgc case?  I.e.:
>
>  $ guile-boehm --no-debug
>  guile> (load "gcbench.scm")
>  ;;; takes 50s. to complete
>  guile> (load "gcbench.scm")
>  ;;; takes 118s. to complete
>

No. But I have ran a series of benchmarks now:


(benchmark 20) in Guile:
Guile: 4.4mb / 277s / 149mb
Boehm: 4.4mb / 243s / 148mb

----

(benchmark 20) in Snd:
Guile: 96mb / 336s / 216mb
Boehm: 99mb / 442s / 257mb [1]

----

(benchmark) (benchmark), in Snd:
Guile: 96mb /  58s / 174mb / 59s / 174mb
Boehm: 99mb / 105s / 108mb / 99s / 116mb

-----

(benchmark) (benchmark), in Guile:
Guile: 4.4mb / 50s / 78mb / 50s / 80mb
Boehm: 5.2mb / 74s / 55mb / 71s / 63mb [2]



[1] Memory usage flipped over from 182.2 to 256.6 right before the 
benchmark was finished.

[2] I ran another time, and got 75s. It seems like my previous result of 
50s might have been ran with the wrong program.





>
> For libgc, there are a few environment variables that might be
> influential, e.g., `GC_MAXIMUM_HEAP_SIZE' (see `README.environment' from
> libgc).  Likewise for Guile's GC, but they're undocumented AFAIK (grep
> for `scm_getenv_int' in the `libguile' directory).
>

Any tip about what to try? I did some tweaking with it 7 years ago 
when I ported it to beos and worked on the amigaos port, but haven't 
touched it since.

[-- Attachment #2: Type: text/plain, Size: 143 bytes --]

_______________________________________________
Guile-devel mailing list
Guile-devel@gnu.org
http://lists.gnu.org/mailman/listinfo/guile-devel

  reply	other threads:[~2007-06-04 18:00 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <Pine.LNX.4.64.0706031204540.9006@ttleush>
     [not found] ` <20070603110930.M29119@ccrma.Stanford.EDU>
2007-06-03 14:57   ` Experience with guile + Boehm GC in SND (Re: New versions of rt-compiler.scm, rt-examples.scm and rt.tex Kjetil Svalastog Matheussen
2007-06-03 16:33     ` Kjetil Svalastog Matheussen
2007-06-03 20:07       ` Kjetil Svalastog Matheussen
2007-06-04 11:39         ` Ludovic Courtès
2007-06-04 12:08           ` Kjetil S. Matheussen
2007-06-04 12:45             ` Kjetil S. Matheussen
2007-06-04 13:22             ` Ludovic Courtès
2007-06-04 16:11               ` Kjetil S. Matheussen
2007-06-04 16:50                 ` Ludovic Courtès
2007-06-04 18:00                   ` Kjetil S. Matheussen [this message]
2007-06-04 18:14                     ` Kjetil S. Matheussen
2007-06-05  7:53                     ` Ludovic Courtès

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=Pine.LNX.4.64.0706041947280.16860@ttleush \
    --to=k.s.matheussen@notam02.no \
    --cc=bil@ccrma.Stanford.EDU \
    --cc=guile-devel@gnu.org \
    --cc=ludovic.courtes@laas.fr \
    /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).