51488
|
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
|
|
8 GC_MAXIMUM_HEAP_SIZE=<bytes> - Maximum collected heap size.
|
|
9
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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.
|
|
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.
|