From: David L. <da...@li...> - 2004-05-23 18:51:49
|
Hi, is garbage collection time in SBCL dependent on the total number of threads started? In GC-intensive code, I noticed that a large amount of real time was spent when background threads were present, while run time as measured by get-internal-run-time seemed much lower. Attached is a small test function which starts N threads, then allocates data in the initial thread. The background threads just call SLEEP. I get the following results for current SBCL (0.8.10.48 with sb-futex): $ sbcl --noinform --userinit /dev/null --load test.cl --eval '(test n)' --eval '(quit)' Times for 0 <= N <= 4 (with GC enabled): 5s real time, 4232 int. real time, 3937 int. run time 10s real time, 10141 int. real time, 3934 int. run time 18s real time, 17135 int. real time, 3946 int. run time 23s real time, 22997 int. real time, 3941 int. run time 28s real time, 27999 int. real time, 3949 int. run time Times for 0 <= N <= 7 (with sb-sys:without-gcing): 1s real time, 1527 int. real time, 1409 int. run time 2s real time, 1519 int. real time, 1408 int. run time 2s real time, 1515 int. real time, 1409 int. run time 4s real time, 4524 int. real time, 1407 int. run time 1s real time, 1509 int. real time, 1409 int. run time 1s real time, 1503 int. real time, 1409 int. run time 2s real time, 1512 int. real time, 1412 int. run time 1s real time, 1522 int. real time, 1410 int. run time Thanks, David |