#include <MemorySegment.hpp>
Public Member Functions | |
OldSpaceSegmentSet () | |
OldSpaceSegmentSet (RexxMemory *memory) | |
virtual | ~OldSpaceSegmentSet () |
RexxObject * | allocateObject (size_t allocationLength) |
void | markOldSpaceObjects () |
Public Member Functions inherited from MemorySegmentSet | |
MemorySegmentSet (RexxMemory *memObject, SegmentSetID id, const char *setName) | |
MemorySegmentSet () | |
virtual | ~MemorySegmentSet () |
void * | operator new (size_t size, void *segment) |
void | operator delete (void *size) |
void | operator delete (void *size, void *segment) |
void | removeSegment (MemorySegment *segment) |
void | removeSegmentAndStorage (MemorySegment *segment) |
void | add (MemorySegment *segment) |
MemorySegment * | first () |
MemorySegment * | next (MemorySegment *segment) |
bool | isInSegmentSet (RexxObject *object) |
void | dumpSegments (FILE *keyfile, FILE *dumpfile) |
void | addSegment (MemorySegment *segment, bool createDeadObject=1) |
void | sweep () |
bool | is (SegmentSetID id) |
void | gatherStats (MemoryStats *memStats, SegmentStats *stats) |
virtual void | dumpMemoryProfile (FILE *outfile) |
virtual DeadObject * | donateObject (size_t allocationLength) |
virtual MemorySegment * | donateSegment (size_t allocationLength) |
Protected Member Functions | |
virtual void | addDeadObject (DeadObject *object) |
virtual void | addDeadObject (char *object, size_t length) |
RexxObject * | findObject (size_t allocationLength) |
Protected Member Functions inherited from MemorySegmentSet | |
virtual void | collectEmptySegments () |
RexxObject * | splitDeadObject (DeadObject *object, size_t allocationLength, size_t splitMinimum) |
void | insertSegment (MemorySegment *segment) |
MemorySegment * | findEmptySegment (size_t allocationLength) |
MemorySegment * | splitSegment (size_t allocationLength) |
void | mergeSegments (size_t allocationLength) |
void | combineEmptySegments (MemorySegment *front, MemorySegment *back) |
virtual size_t | suggestMemoryExpansion () |
virtual size_t | suggestMemoryContraction () |
virtual void | prepareForSweep () |
virtual void | completeSweepOperation () |
MemorySegment * | largestActiveSegment () |
MemorySegment * | largestEmptySegment () |
void | adjustMemorySize () |
void | releaseEmptySegments (size_t releaseSize) |
void | releaseSegment (MemorySegment *segment) |
bool | newSegment (size_t requestLength, size_t minimumLength) |
virtual MemorySegment * | allocateSegment (size_t requestLength, size_t minimumLength) |
float | freeMemoryPercentage () |
size_t | totalFreeMemory () |
size_t | calculateSegmentAllocation (size_t n) |
void | addSegments (size_t requiredSpace) |
MemorySegment * | getSegment (size_t requestLength, size_t minimumLength) |
void | activateEmptySegments () |
void | validateObject (size_t bytes) |
Private Attributes | |
DeadObjectPool | deadCache |
Additional Inherited Members | |
Public Types inherited from MemorySegmentSet | |
enum | SegmentSetID { SET_UNINITIALIZED , SET_NORMAL , SET_LARGEBLOCK , SET_OLDSPACE } |
Protected Attributes inherited from MemorySegmentSet | |
MemorySegment | anchor |
MemorySegment | emptySegments |
size_t | count |
size_t | liveObjectBytes |
size_t | deadObjectBytes |
SegmentSetID | owner |
const char * | name |
RexxMemory * | memory |
Definition at line 590 of file MemorySegment.hpp.
|
inline |
Definition at line 595 of file MemorySegment.hpp.
OldSpaceSegmentSet::OldSpaceSegmentSet | ( | RexxMemory * | memory | ) |
Definition at line 196 of file MemorySegment.cpp.
|
inlinevirtual |
Definition at line 597 of file MemorySegment.hpp.
|
protectedvirtual |
Reimplemented from MemorySegmentSet.
Definition at line 437 of file MemorySegment.cpp.
References DeadObjectPool::addSortedBySize(), and deadCache.
|
protectedvirtual |
Reimplemented from MemorySegmentSet.
Definition at line 369 of file MemorySegment.cpp.
References DeadObjectPool::addSortedBySize(), and deadCache.
RexxObject * OldSpaceSegmentSet::allocateObject | ( | size_t | allocationLength | ) |
Definition at line 1401 of file MemorySegment.cpp.
References findObject(), MemorySegmentSet::newSegment(), OREF_NULL, and roundLargeObjectAllocation().
Referenced by RexxMemory::initialize(), and RexxMemory::oldObject().
|
protected |
Definition at line 1381 of file MemorySegment.cpp.
References deadCache, DeadObjectPool::findFit(), LargeAllocationUnit, OREF_NULL, and MemorySegmentSet::splitDeadObject().
Referenced by allocateObject().
void OldSpaceSegmentSet::markOldSpaceObjects | ( | ) |
Definition at line 1796 of file MemorySegment.cpp.
References MemorySegmentSet::first(), MemorySegment::markAllObjects(), and MemorySegmentSet::next().
Referenced by RexxMemory::gutCheck().
|
private |
Definition at line 608 of file MemorySegment.hpp.
Referenced by addDeadObject(), and findObject().