Changeset 161914 in webkit for trunk/Source/JavaScriptCore
- Timestamp:
- Jan 13, 2014, 3:50:58 PM (11 years ago)
- Location:
- trunk/Source/JavaScriptCore
- Files:
-
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/JavaScriptCore/ChangeLog
r161900 r161914 1 2014-01-13 Mark Hahnenberg <[email protected]> 2 3 Performance regression on dromaeo due to generational marking 4 https://bugs.webkit.org/show_bug.cgi?id=126901 5 6 Reviewed by Oliver Hunt. 7 8 We were seeing some performance regression with ENABLE_GGC == 0, so this patch 9 ifdefs out more things to get rid of the additional overhead. 10 11 * heap/Heap.cpp: 12 (JSC::Heap::markRoots): 13 (JSC::Heap::writeBarrier): 14 * heap/MarkedBlock.cpp: 15 (JSC::MarkedBlock::clearMarks): 16 (JSC::MarkedBlock::clearMarksWithCollectionType): 17 * heap/MarkedSpace.cpp: 18 (JSC::MarkedSpace::resetAllocators): 19 * heap/MarkedSpace.h: 20 (JSC::MarkedSpace::didAllocateInBlock): 21 * heap/SlotVisitorInlines.h: 22 (JSC::SlotVisitor::internalAppend): 23 (JSC::SlotVisitor::reportExtraMemoryUsage): 24 1 25 2014-01-13 Brian Burg <[email protected]> 2 26 -
trunk/Source/JavaScriptCore/heap/Heap.cpp
r161615 r161914 490 490 HeapRootVisitor heapRootVisitor(visitor); 491 491 492 #if ENABLE(GGC) 492 493 Vector<const JSCell*> rememberedSet(m_slotVisitor.markStack().size()); 493 494 m_slotVisitor.markStack().fillVector(rememberedSet); 495 #endif 494 496 495 497 { … … 596 598 } 597 599 600 #if ENABLE(GGC) 598 601 { 599 602 GCPHASE(ClearRememberedSet); … … 603 606 } 604 607 } 608 #endif 605 609 606 610 GCCOUNTER(VisitedValueCount, visitor.visitCount()); … … 1077 1081 void Heap::writeBarrier(const JSCell* from) 1078 1082 { 1083 #if ENABLE(GGC) 1079 1084 ASSERT_GC_OBJECT_LOOKS_VALID(const_cast<JSCell*>(from)); 1080 1085 if (!from || !isMarked(from)) … … 1082 1087 Heap* heap = Heap::heap(from); 1083 1088 heap->addToRememberedSet(from); 1089 #else 1090 UNUSED_PARAM(from); 1091 #endif 1084 1092 } 1085 1093 -
trunk/Source/JavaScriptCore/heap/MarkedBlock.cpp
r161615 r161914 200 200 void MarkedBlock::clearMarks() 201 201 { 202 #if ENABLE(GGC) 202 203 if (heap()->operationInProgress() == JSC::EdenCollection) 203 204 this->clearMarksWithCollectionType<EdenCollection>(); 204 205 else 205 206 this->clearMarksWithCollectionType<FullCollection>(); 207 #else 208 this->clearMarksWithCollectionType<FullCollection>(); 209 #endif 206 210 } 207 211 … … 220 224 if (collectionType == FullCollection) { 221 225 m_marks.clearAll(); 226 #if ENABLE(GGC) 222 227 m_rememberedSet.clearAll(); 228 #endif 223 229 } 224 230 -
trunk/Source/JavaScriptCore/heap/MarkedSpace.cpp
r161615 r161914 146 146 m_immortalStructureDestructorSpace.largeAllocator.reset(); 147 147 148 #if ENABLE(GGC) 148 149 m_blocksWithNewObjects.clear(); 150 #endif 149 151 } 150 152 -
trunk/Source/JavaScriptCore/heap/MarkedSpace.h
r161615 r161914 278 278 inline void MarkedSpace::didAllocateInBlock(MarkedBlock* block) 279 279 { 280 #if ENABLE(GGC) 280 281 m_blocksWithNewObjects.append(block); 282 #else 283 UNUSED_PARAM(block); 284 #endif 281 285 } 282 286 -
trunk/Source/JavaScriptCore/heap/SlotVisitorInlines.h
r161615 r161914 102 102 103 103 m_bytesVisited += MarkedBlock::blockFor(cell)->cellSize(); 104 m_visitCount++;105 104 106 105 MARK_LOG_CHILD(*this, cell); … … 243 242 inline void SlotVisitor::reportExtraMemoryUsage(JSCell* owner, size_t size) 244 243 { 244 #if ENABLE(GGC) 245 245 // We don't want to double-count the extra memory that was reported in previous collections. 246 246 if (heap()->operationInProgress() == EdenCollection && MarkedBlock::blockFor(owner)->isRemembered(owner)) 247 247 return; 248 #else 249 UNUSED_PARAM(owner); 250 #endif 248 251 249 252 size_t* counter = &m_shared.m_vm->heap.m_extraMemoryUsage;
Note:
See TracChangeset
for help on using the changeset viewer.