27
28 #include "memory/allocation.hpp"
29 #include "memory/blockOffsetTable.hpp"
30 #include "memory/cardTableModRefBS.hpp"
31 #include "memory/iterator.hpp"
32 #include "memory/memRegion.hpp"
33 #include "memory/watermark.hpp"
34 #include "oops/markOop.hpp"
35 #include "runtime/mutexLocker.hpp"
36 #include "runtime/prefetch.hpp"
37 #include "utilities/workgroup.hpp"
38 #ifdef TARGET_OS_FAMILY_linux
39 # include "os_linux.inline.hpp"
40 #endif
41 #ifdef TARGET_OS_FAMILY_solaris
42 # include "os_solaris.inline.hpp"
43 #endif
44 #ifdef TARGET_OS_FAMILY_windows
45 # include "os_windows.inline.hpp"
46 #endif
47
48 // A space is an abstraction for the "storage units" backing
49 // up the generation abstraction. It includes specific
50 // implementations for keeping track of free and used space,
51 // for iterating over objects and free blocks, etc.
52
53 // Here's the Space hierarchy:
54 //
55 // - Space -- an asbtract base class describing a heap area
56 // - CompactibleSpace -- a space supporting compaction
57 // - CompactibleFreeListSpace -- (used for CMS generation)
58 // - ContiguousSpace -- a compactible space in which all free space
59 // is contiguous
60 // - EdenSpace -- contiguous space used as nursery
61 // - ConcEdenSpace -- contiguous space with a 'soft end safe' allocation
62 // - OffsetTableContigSpace -- contiguous space with a block offset array
63 // that allows "fast" block_start calls
64 // - TenuredSpace -- (used for TenuredGeneration)
65 // - ContigPermSpace -- an offset table contiguous space for perm gen
66
|
27
28 #include "memory/allocation.hpp"
29 #include "memory/blockOffsetTable.hpp"
30 #include "memory/cardTableModRefBS.hpp"
31 #include "memory/iterator.hpp"
32 #include "memory/memRegion.hpp"
33 #include "memory/watermark.hpp"
34 #include "oops/markOop.hpp"
35 #include "runtime/mutexLocker.hpp"
36 #include "runtime/prefetch.hpp"
37 #include "utilities/workgroup.hpp"
38 #ifdef TARGET_OS_FAMILY_linux
39 # include "os_linux.inline.hpp"
40 #endif
41 #ifdef TARGET_OS_FAMILY_solaris
42 # include "os_solaris.inline.hpp"
43 #endif
44 #ifdef TARGET_OS_FAMILY_windows
45 # include "os_windows.inline.hpp"
46 #endif
47 #ifdef TARGET_OS_FAMILY_bsd
48 # include "os_bsd.inline.hpp"
49 #endif
50
51 // A space is an abstraction for the "storage units" backing
52 // up the generation abstraction. It includes specific
53 // implementations for keeping track of free and used space,
54 // for iterating over objects and free blocks, etc.
55
56 // Here's the Space hierarchy:
57 //
58 // - Space -- an asbtract base class describing a heap area
59 // - CompactibleSpace -- a space supporting compaction
60 // - CompactibleFreeListSpace -- (used for CMS generation)
61 // - ContiguousSpace -- a compactible space in which all free space
62 // is contiguous
63 // - EdenSpace -- contiguous space used as nursery
64 // - ConcEdenSpace -- contiguous space with a 'soft end safe' allocation
65 // - OffsetTableContigSpace -- contiguous space with a block offset array
66 // that allows "fast" block_start calls
67 // - TenuredSpace -- (used for TenuredGeneration)
68 // - ContigPermSpace -- an offset table contiguous space for perm gen
69
|