- 1. Use `GC_malloc_atomic` for objects containing no pointers. This is
- especially important for large arrays containing compressed data,
- pseudo-random numbers, and the like. It is also likely to improve GC
- performance, perhaps drastically so if the application is paging.
- 2. If you allocate large objects containing only one or two pointers at the
- beginning, either try the typed allocation primitives in `gc_typed.h`,
- or separate out the pointer-free component.
- 3. Consider using `GC_malloc_ignore_off_page` to allocate large objects.
- (See `gc.h` and above for details. Large means more than 100 KB in most
- environments.)
- 4. If your heap size is larger than 100 MB or so, build the collector with
- `-DLARGE_CONFIG`. This allows the collector to keep more precise black-list
- information.
- 5. If you are using heaps close to, or larger than, a gigabyte on a 32-bit
- machine, you may want to consider moving to a platform with 64-bit pointers.
- This is very likely to resolve any false pointer issues.
- ## Prematurely Reclaimed Objects
- The usual symptom of this is a segmentation fault, or an obviously overwritten
- value in a heap object. This should, of course, be impossible. In practice,