本文整理汇总了C++中MM_MemorySubSpace::getMemoryPoolCount方法的典型用法代码示例。如果您正苦于以下问题:C++ MM_MemorySubSpace::getMemoryPoolCount方法的具体用法?C++ MM_MemorySubSpace::getMemoryPoolCount怎么用?C++ MM_MemorySubSpace::getMemoryPoolCount使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类MM_MemorySubSpace
的用法示例。
在下文中一共展示了MM_MemorySubSpace::getMemoryPoolCount方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: regionIterator
/**
* Walk all segments and calculate the maximum number of chunks needed to represent the current heap.
* The chunk calculation is done on a per segment basis (no segment can represent memory from more than 1 chunk),
* and partial sized chunks (ie: less than the chunk size) are reserved for any remaining space at the end of a
* segment.
* @return number of chunks required to represent the current heap memory.
*/
uintptr_t
MM_SweepHeapSectioningSegmented::calculateActualChunkNumbers() const
{
uintptr_t totalChunkCount = 0;
MM_HeapRegionDescriptor *region;
MM_Heap *heap = _extensions->heap;
MM_HeapRegionManager *regionManager = heap->getHeapRegionManager();
GC_HeapRegionIterator regionIterator(regionManager);
while((region = regionIterator.nextRegion()) != NULL) {
if ((region)->isCommitted()) {
/* TODO: this must be rethought for Tarok since it treats all regions identically but some might require different sweep logic */
MM_MemorySubSpace *subspace = region->getSubSpace();
/* if this is a committed region, it requires a non-NULL subspace */
Assert_MM_true(NULL != subspace);
uintptr_t poolCount = subspace->getMemoryPoolCount();
totalChunkCount += MM_Math::roundToCeiling(_extensions->parSweepChunkSize, region->getSize()) / _extensions->parSweepChunkSize;
/* Add extra chunks if more than one memory pool */
totalChunkCount += (poolCount - 1);
}
}
return totalChunkCount;
}