[m-rev.] For review: Change the Boehm collector to report on collection time.

Zoltan Somogyi zs at csse.unimelb.edu.au
Wed Mar 12 17:07:23 AEDT 2008

On 06-Mar-2008, Quan Phan <quan.phan at cs.kuleuven.be> wrote:
> Normally by setting the GC_PRINT_STATS environment variable to a
> value different from 0, the Boehm collector will print out some statistics
> of its behaviour each time it is invoked. I modified it a bit so that it
> reports on the total time spent on garbage collection.  
> boehm_gc/alloc.c:
> 	Accumulate the collection time into a global variable. I took the
> 	calls to GET_TIME out of the if statements so that we can always
> 	report on collection time with report_stats predicate. I tested it
> 	with some programs and it seemed not affect the overall performance.

I looked at the code, and since GET_TIME expands to a system call (getrusage),
it can lead to a nontrivial slowdown. I therefore think that this change
needs to be modified to record the time taken for gc only if the user asks
for it.

Unless you object, I will modify the diff tomorrow to accomplish this.
Don't commit the parts of the diff related this.

> Index: runtime/mercury_region.h
> ===================================================================
> RCS file: /home/mercury/mercury1/repository/mercury/runtime/mercury_region.h,v
> retrieving revision 1.11
> diff -u -r1.11 mercury_region.h
> --- runtime/mercury_region.h	23 Jan 2008 11:44:48 -0000	1.11
> +++ runtime/mercury_region.h	6 Mar 2008 13:58:27 -0000
> @@ -37,7 +37,7 @@
>  /* XXX This should be made configurable when compiling a program. */
>  #define     MR_REGION_NUM_PAGES_TO_REQUEST                  100
> -#define     MR_REGION_PAGE_SPACE_SIZE                       255
> +#define     MR_REGION_PAGE_SPACE_SIZE                       2048

This looks like a bug: MR_REGION_PAGE_SPACE_SIZE should have a value
that makes the size of struct MR_RegionPage_Struct a power of 2. With
this definition, it won't be, because of the MR_regionpage_next field.
The line you want is

#define     MR_REGION_PAGE_SPACE_SIZE                       2047

mercury-reviews mailing list
Post messages to:       mercury-reviews at csse.unimelb.edu.au
Administrative Queries: owner-mercury-reviews at csse.unimelb.edu.au
Subscriptions:          mercury-reviews-request at csse.unimelb.edu.au

More information about the reviews mailing list