Annotation of OpenXM_contrib2/asir2000/gc/doc/README.environment, Revision 1.2
1.1 noro 1: The garbage collector looks at a number of environment variables which are
2: then used to affect its operation. These are examined only on Un*x-like
3: platforms.
4:
5: GC_INITIAL_HEAP_SIZE=<bytes> - Initial heap size in bytes. May speed up
6: process start-up.
7:
1.2 ! noro 8: GC_MAXIMUM_HEAP_SIZE=<bytes> - Maximum collected heap size.
! 9:
1.1 noro 10: GC_LOOP_ON_ABORT - Causes the collector abort routine to enter a tight loop.
11: This may make it easier to debug, such a process, especially
12: for multithreaded platforms that don't produce usable core
13: files, or if a core file would be too large. On some
14: platforms, this also causes SIGSEGV to be caught and
15: result in an infinite loop in a handler, allowing
16: similar debugging techniques.
17:
18: GC_PRINT_STATS - Turn on as much logging as is easily feasible without
19: adding signifcant runtime overhead. Doesn't work if
20: the collector is built with SMALL_CONFIG. Overridden
21: by setting GC_quiet. On by default if the collector
22: was built without -DSILENT.
23:
1.2 ! noro 24: GC_DUMP_REGULARLY - Generate a GC debugging dump GC_dump() on startup
! 25: and during every collection. Very verbose. Useful
! 26: if you have a bug to report, but please include only the
! 27: last complete dump.
! 28:
1.1 noro 29: GC_PRINT_ADDRESS_MAP - Linux only. Dump /proc/self/maps, i.e. various address
30: maps for the process, to stderr on every GC. Useful for
31: mapping root addresses to source for deciphering leak
32: reports.
33:
34: GC_NPROCS=<n> - Linux w/threads only. Explicitly sets the number of processors
35: that the GC should expect to use. Note that setting this to 1
36: when multiple processors are available will preserve
37: correctness, but may lead to really horrible performance,
38: since the lock implementation will immediately yield without
39: first spinning.
40:
41: GC_MARKERS=<n> - Linux w/threads and parallel marker only. Set the number
42: of marker threads. This is normaly set to the number of
43: processors. It is safer to adjust GC_MARKERS than GC_NPROCS,
44: since GC_MARKERS has no impact on the lock implementation.
45:
46: GC_NO_BLACKLIST_WARNING - Prevents the collector from issuing
47: warnings about allocations of very large blocks.
48: Deprecated. Use GC_LARGE_ALLOC_WARN_INTERVAL instead.
49:
50: GC_LARGE_ALLOC_WARN_INTERVAL=<n> - Print every nth warning about very large
51: block allocations, starting with the nth one. Small values
52: of n are generally benign, in that a bounded number of
53: such warnings generally indicate at most a bounded leak.
54: For best results it should be set at 1 during testing.
55: Default is 5. Very large numbers effectively disable the
56: warning.
57:
58: GC_IGNORE_GCJ_INFO - Ignore the type descriptors implicitly supplied by
59: GC_gcj_malloc and friends. This is useful for debugging
60: descriptor generation problems, and possibly for
61: temporarily working around such problems. It forces a
62: fully conservative scan of all heap objects except
63: those known to be pointerfree, and may thus have other
64: adverse effects.
65:
66: GC_PRINT_BACK_HEIGHT - Print max length of chain through unreachable objects
67: ending in a reachable one. If this number remains
68: bounded, then the program is "GC robust". This ensures
69: that a fixed number of misidentified pointers can only
70: result in a bounded space leak. This currently only
71: works if debugging allocation is used throughout.
72: It increases GC space and time requirements appreciably.
73: This feature is still somewhat experimental, and requires
74: that the collector have been built with MAKE_BACK_GRAPH
75: defined. For details, see Boehm, "Bounding Space Usage
76: of Conservative Garbage Collectors", POPL 2001, or
77: http://lib.hpl.hp.com/techpubs/2001/HPL-2001-251.html .
78:
1.2 ! noro 79: GC_RETRY_SIGNALS, GC_NO_RETRY_SIGNALS - Try to compensate for lost
! 80: thread suspend signals in linux_threads.c. On by
! 81: default for GC_OSF1_THREADS, off otherwise. Note
! 82: that this does not work around a possible loss of
! 83: thread restart signals. This seems to be necessary for
! 84: some versions of Tru64. Since we've previously seen
! 85: similar issues on some other operating systems, it
! 86: was turned into a runtime flag to enable last-minute
! 87: work-arounds.
! 88:
1.1 noro 89: The following turn on runtime flags that are also program settable. Checked
90: only during initialization. We expect that they will usually be set through
91: other means, but this may help with debugging and testing:
92:
93: GC_ENABLE_INCREMENTAL - Turn on incremental collection at startup. Note that,
94: depending on platform and collector configuration, this
95: may involve write protecting pieces of the heap to
96: track modifications. These pieces may include pointerfree
97: objects or not. Although this is intended to be
98: transparent, it may cause unintended system call failures.
99: Use with caution.
100:
101: GC_PAUSE_TIME_TARGET - Set the desired garbage collector pause time in msecs.
102: This only has an effect if incremental collection is
103: enabled. If a collection requires appreciably more time
104: than this, the client will be restarted, and the collector
105: will need to do additional work to compensate. The
106: special value "999999" indicates that pause time is
107: unlimited, and the incremental collector will behave
108: completely like a simple generational collector. If
109: the collector is configured for parallel marking, and
110: run on a multiprocessor, incremental collection should
111: only be used with unlimited pause time.
112:
1.2 ! noro 113: GC_FIND_LEAK - Turns on GC_find_leak and thus leak detection. Forces a
! 114: collection at program termination to detect leaks that would
! 115: otherwise occur after the last GC.
1.1 noro 116:
117: GC_ALL_INTERIOR_POINTERS - Turns on GC_all_interior_pointers and thus interior
118: pointer recognition.
119:
120: GC_DONT_GC - Turns off garbage collection. Use cautiously.
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>