Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(178)

Side by Side Diff: src/heap/heap.h

Issue 1929503002: Reland of "[heap] Uncommit pooled pages concurrently" (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Fixed pooling Created 4 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « src/deoptimizer.cc ('k') | src/heap/heap.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2012 the V8 project authors. All rights reserved. 1 // Copyright 2012 the V8 project authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef V8_HEAP_HEAP_H_ 5 #ifndef V8_HEAP_HEAP_H_
6 #define V8_HEAP_HEAP_H_ 6 #define V8_HEAP_HEAP_H_
7 7
8 #include <cmath> 8 #include <cmath>
9 #include <map> 9 #include <map>
10 10
(...skipping 760 matching lines...) Expand 10 before | Expand all | Expand 10 after
771 // An object should be promoted if the object has survived a 771 // An object should be promoted if the object has survived a
772 // scavenge operation. 772 // scavenge operation.
773 inline bool ShouldBePromoted(Address old_address, int object_size); 773 inline bool ShouldBePromoted(Address old_address, int object_size);
774 774
775 void ClearNormalizedMapCaches(); 775 void ClearNormalizedMapCaches();
776 776
777 void IncrementDeferredCount(v8::Isolate::UseCounterFeature feature); 777 void IncrementDeferredCount(v8::Isolate::UseCounterFeature feature);
778 778
779 inline bool OldGenerationAllocationLimitReached(); 779 inline bool OldGenerationAllocationLimitReached();
780 780
781 void QueueMemoryChunkForFree(MemoryChunk* chunk);
782 void FreeQueuedChunks(MemoryChunk* list_head);
783 void FreeQueuedChunks();
784 void WaitUntilUnmappingOfFreeChunksCompleted();
785
786 // Completely clear the Instanceof cache (to stop it keeping objects alive 781 // Completely clear the Instanceof cache (to stop it keeping objects alive
787 // around a GC). 782 // around a GC).
788 inline void CompletelyClearInstanceofCache(); 783 inline void CompletelyClearInstanceofCache();
789 784
790 inline uint32_t HashSeed(); 785 inline uint32_t HashSeed();
791 786
792 inline int NextScriptId(); 787 inline int NextScriptId();
793 788
794 inline void SetArgumentsAdaptorDeoptPCOffset(int pc_offset); 789 inline void SetArgumentsAdaptorDeoptPCOffset(int pc_offset);
795 inline void SetConstructStubDeoptPCOffset(int pc_offset); 790 inline void SetConstructStubDeoptPCOffset(int pc_offset);
(...skipping 587 matching lines...) Expand 10 before | Expand all | Expand 10 after
1383 // Report heap statistics. 1378 // Report heap statistics.
1384 void ReportHeapStatistics(const char* title); 1379 void ReportHeapStatistics(const char* title);
1385 void ReportCodeStatistics(const char* title); 1380 void ReportCodeStatistics(const char* title);
1386 #endif 1381 #endif
1387 #ifdef ENABLE_SLOW_DCHECKS 1382 #ifdef ENABLE_SLOW_DCHECKS
1388 int CountHandlesForObject(Object* object); 1383 int CountHandlesForObject(Object* object);
1389 #endif 1384 #endif
1390 1385
1391 private: 1386 private:
1392 class PretenuringScope; 1387 class PretenuringScope;
1393 class UnmapFreeMemoryTask;
1394 1388
1395 // External strings table is a place where all external strings are 1389 // External strings table is a place where all external strings are
1396 // registered. We need to keep track of such strings to properly 1390 // registered. We need to keep track of such strings to properly
1397 // finalize them. 1391 // finalize them.
1398 class ExternalStringTable { 1392 class ExternalStringTable {
1399 public: 1393 public:
1400 // Registers an external string. 1394 // Registers an external string.
1401 inline void AddString(String* string); 1395 inline void AddString(String* string);
1402 1396
1403 inline void Iterate(ObjectVisitor* v); 1397 inline void Iterate(ObjectVisitor* v);
(...skipping 797 matching lines...) Expand 10 before | Expand all | Expand 10 after
2201 2195
2202 // Currently set GC flags that are respected by all GC components. 2196 // Currently set GC flags that are respected by all GC components.
2203 int current_gc_flags_; 2197 int current_gc_flags_;
2204 2198
2205 // Currently set GC callback flags that are used to pass information between 2199 // Currently set GC callback flags that are used to pass information between
2206 // the embedder and V8's GC. 2200 // the embedder and V8's GC.
2207 GCCallbackFlags current_gc_callback_flags_; 2201 GCCallbackFlags current_gc_callback_flags_;
2208 2202
2209 ExternalStringTable external_string_table_; 2203 ExternalStringTable external_string_table_;
2210 2204
2211 MemoryChunk* chunks_queued_for_free_;
2212
2213 size_t concurrent_unmapping_tasks_active_;
2214
2215 base::Semaphore pending_unmapping_tasks_semaphore_;
2216
2217 base::Mutex relocation_mutex_; 2205 base::Mutex relocation_mutex_;
2218 2206
2219 int gc_callbacks_depth_; 2207 int gc_callbacks_depth_;
2220 2208
2221 bool deserialization_complete_; 2209 bool deserialization_complete_;
2222 2210
2223 StrongRootsList* strong_roots_list_; 2211 StrongRootsList* strong_roots_list_;
2224 2212
2225 ArrayBufferTracker* array_buffer_tracker_; 2213 ArrayBufferTracker* array_buffer_tracker_;
2226 2214
(...skipping 422 matching lines...) Expand 10 before | Expand all | Expand 10 after
2649 friend class LargeObjectSpace; 2637 friend class LargeObjectSpace;
2650 friend class NewSpace; 2638 friend class NewSpace;
2651 friend class PagedSpace; 2639 friend class PagedSpace;
2652 DISALLOW_COPY_AND_ASSIGN(AllocationObserver); 2640 DISALLOW_COPY_AND_ASSIGN(AllocationObserver);
2653 }; 2641 };
2654 2642
2655 } // namespace internal 2643 } // namespace internal
2656 } // namespace v8 2644 } // namespace v8
2657 2645
2658 #endif // V8_HEAP_HEAP_H_ 2646 #endif // V8_HEAP_HEAP_H_
OLDNEW
« no previous file with comments | « src/deoptimizer.cc ('k') | src/heap/heap.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698