void MemoryCache::pruneDeadResources() { unsigned capacity = deadCapacity(); if (capacity && m_deadSize <= capacity) return; unsigned targetSize = static_cast<unsigned>(capacity * cTargetPrunePercentage); // Cut by a percentage to avoid immediately pruning again. pruneDeadResourcesToSize(targetSize); }
void MemoryCache::pruneDeadResourcesToPercentage(float prunePercentage) { if (!m_pruneEnabled) return; if (prunePercentage < 0.0f || prunePercentage > 0.95f) return; unsigned currentSize = m_liveSize + m_deadSize; unsigned targetSize = static_cast<unsigned>(currentSize * prunePercentage); pruneDeadResourcesToSize(targetSize); }