本文整理汇总了C++中SlotVisitor::reportExtraMemoryUsage方法的典型用法代码示例。如果您正苦于以下问题:C++ SlotVisitor::reportExtraMemoryUsage方法的具体用法?C++ SlotVisitor::reportExtraMemoryUsage怎么用?C++ SlotVisitor::reportExtraMemoryUsage使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类SlotVisitor
的用法示例。
在下文中一共展示了SlotVisitor::reportExtraMemoryUsage方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: visitChildren
void JSString::visitChildren(JSCell* cell, SlotVisitor& visitor)
{
JSString* thisObject = jsCast<JSString*>(cell);
Base::visitChildren(thisObject, visitor);
MARK_LOG_MESSAGE1("[%u]: ", thisObject->length());
#if ENABLE(OBJECT_MARK_LOGGING)
if (!thisObject->isRope()) {
WTF::StringImpl* ourImpl = thisObject->m_value.impl();
if (ourImpl->is8Bit())
MARK_LOG_MESSAGE1("[8 %p]", ourImpl->characters8());
else
MARK_LOG_MESSAGE1("[16 %p]", ourImpl->characters16());
} else
MARK_LOG_MESSAGE0("[rope]: ");
#endif
if (thisObject->isRope())
static_cast<JSRopeString*>(thisObject)->visitFibers(visitor);
else {
StringImpl* impl = thisObject->m_value.impl();
ASSERT(impl);
visitor.reportExtraMemoryUsage(impl->costDuringGC());
}
}
示例2: visitChildren
void WeakMapData::visitChildren(JSCell* cell, SlotVisitor& visitor)
{
Base::visitChildren(cell, visitor);
WeakMapData* thisObj = jsCast<WeakMapData*>(cell);
visitor.addUnconditionalFinalizer(&thisObj->m_deadKeyCleaner);
visitor.addWeakReferenceHarvester(&thisObj->m_deadKeyCleaner);
// Rough approximation of the external storage needed for the hashtable.
// This isn't exact, but it is close enough, and proportional to the actual
// external mermory usage.
visitor.reportExtraMemoryUsage(thisObj->m_map.capacity() * (sizeof(JSObject*) + sizeof(WriteBarrier<Unknown>)));
}
示例3: visitChildren
void JSString::visitChildren(JSCell* cell, SlotVisitor& visitor)
{
JSString* thisObject = jsCast<JSString*>(cell);
Base::visitChildren(thisObject, visitor);
if (thisObject->isRope())
static_cast<JSRopeString*>(thisObject)->visitFibers(visitor);
else {
StringImpl* impl = thisObject->m_value.impl();
ASSERT(impl);
visitor.reportExtraMemoryUsage(thisObject, impl->costDuringGC());
}
}