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

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

Issue 1128023005: Remove static logging of memory allocations (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Created 5 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/globals.h ('k') | src/log.h » ('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 2011 the V8 project authors. All rights reserved. 1 // Copyright 2011 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_SPACES_H_ 5 #ifndef V8_HEAP_SPACES_H_
6 #define V8_HEAP_SPACES_H_ 6 #define V8_HEAP_SPACES_H_
7 7
8 #include "src/allocation.h" 8 #include "src/allocation.h"
9 #include "src/base/atomicops.h" 9 #include "src/base/atomicops.h"
10 #include "src/base/bits.h" 10 #include "src/base/bits.h"
(...skipping 2235 matching lines...) Expand 10 before | Expand all | Expand 10 after
2246 uintptr_t object_expected_; 2246 uintptr_t object_expected_;
2247 2247
2248 bool committed_; 2248 bool committed_;
2249 SemiSpaceId id_; 2249 SemiSpaceId id_;
2250 2250
2251 NewSpacePage anchor_; 2251 NewSpacePage anchor_;
2252 NewSpacePage* current_page_; 2252 NewSpacePage* current_page_;
2253 2253
2254 friend class SemiSpaceIterator; 2254 friend class SemiSpaceIterator;
2255 friend class NewSpacePageIterator; 2255 friend class NewSpacePageIterator;
2256
2257 public:
2258 TRACK_MEMORY("SemiSpace")
2259 }; 2256 };
2260 2257
2261 2258
2262 // A SemiSpaceIterator is an ObjectIterator that iterates over the active 2259 // A SemiSpaceIterator is an ObjectIterator that iterates over the active
2263 // semispace of the heap's new space. It iterates over the objects in the 2260 // semispace of the heap's new space. It iterates over the objects in the
2264 // semispace from a given start address (defaulting to the bottom of the 2261 // semispace from a given start address (defaulting to the bottom of the
2265 // semispace) to the top of the semispace. New objects allocated after the 2262 // semispace) to the top of the semispace. New objects allocated after the
2266 // iterator is created are not iterated. 2263 // iterator is created are not iterated.
2267 class SemiSpaceIterator : public ObjectIterator { 2264 class SemiSpaceIterator : public ObjectIterator {
2268 public: 2265 public:
(...skipping 349 matching lines...) Expand 10 before | Expand all | Expand 10 after
2618 2615
2619 Address top_on_previous_step_; 2616 Address top_on_previous_step_;
2620 2617
2621 HistogramInfo* allocated_histogram_; 2618 HistogramInfo* allocated_histogram_;
2622 HistogramInfo* promoted_histogram_; 2619 HistogramInfo* promoted_histogram_;
2623 2620
2624 MUST_USE_RESULT AllocationResult 2621 MUST_USE_RESULT AllocationResult
2625 SlowAllocateRaw(int size_in_bytes, AllocationAlignment alignment); 2622 SlowAllocateRaw(int size_in_bytes, AllocationAlignment alignment);
2626 2623
2627 friend class SemiSpaceIterator; 2624 friend class SemiSpaceIterator;
2628
2629 public:
2630 TRACK_MEMORY("NewSpace")
2631 }; 2625 };
2632 2626
2633 2627
2634 // ----------------------------------------------------------------------------- 2628 // -----------------------------------------------------------------------------
2635 // Old object space (includes the old space of objects and code space) 2629 // Old object space (includes the old space of objects and code space)
2636 2630
2637 class OldSpace : public PagedSpace { 2631 class OldSpace : public PagedSpace {
2638 public: 2632 public:
2639 // Creates an old space object with a given maximum capacity. 2633 // Creates an old space object with a given maximum capacity.
2640 // The constructor does not allocate pages from OS. 2634 // The constructor does not allocate pages from OS.
2641 OldSpace(Heap* heap, intptr_t max_capacity, AllocationSpace id, 2635 OldSpace(Heap* heap, intptr_t max_capacity, AllocationSpace id,
2642 Executability executable) 2636 Executability executable)
2643 : PagedSpace(heap, max_capacity, id, executable) {} 2637 : PagedSpace(heap, max_capacity, id, executable) {}
2644
2645 public:
2646 TRACK_MEMORY("OldSpace")
2647 }; 2638 };
2648 2639
2649 2640
2650 // For contiguous spaces, top should be in the space (or at the end) and limit 2641 // For contiguous spaces, top should be in the space (or at the end) and limit
2651 // should be the end of the space. 2642 // should be the end of the space.
2652 #define DCHECK_SEMISPACE_ALLOCATION_INFO(info, space) \ 2643 #define DCHECK_SEMISPACE_ALLOCATION_INFO(info, space) \
2653 SLOW_DCHECK((space).page_low() <= (info).top() && \ 2644 SLOW_DCHECK((space).page_low() <= (info).top() && \
2654 (info).top() <= (space).page_high() && \ 2645 (info).top() <= (space).page_high() && \
2655 (info).limit() <= (space).page_high()) 2646 (info).limit() <= (space).page_high())
2656 2647
(...skipping 25 matching lines...) Expand all
2682 2673
2683 private: 2674 private:
2684 static const int kMapsPerPage = Page::kMaxRegularHeapObjectSize / Map::kSize; 2675 static const int kMapsPerPage = Page::kMaxRegularHeapObjectSize / Map::kSize;
2685 2676
2686 // Do map space compaction if there is a page gap. 2677 // Do map space compaction if there is a page gap.
2687 int CompactionThreshold() { 2678 int CompactionThreshold() {
2688 return kMapsPerPage * (max_map_space_pages_ - 1); 2679 return kMapsPerPage * (max_map_space_pages_ - 1);
2689 } 2680 }
2690 2681
2691 const int max_map_space_pages_; 2682 const int max_map_space_pages_;
2692
2693 public:
2694 TRACK_MEMORY("MapSpace")
2695 }; 2683 };
2696 2684
2697 2685
2698 // ----------------------------------------------------------------------------- 2686 // -----------------------------------------------------------------------------
2699 // Large objects ( > Page::kMaxHeapObjectSize ) are allocated and managed by 2687 // Large objects ( > Page::kMaxHeapObjectSize ) are allocated and managed by
2700 // the large object space. A large object is allocated from OS heap with 2688 // the large object space. A large object is allocated from OS heap with
2701 // extra padding bytes (Page::kPageSize + Page::kObjectStartOffset). 2689 // extra padding bytes (Page::kPageSize + Page::kObjectStartOffset).
2702 // A large object always starts at Page::kObjectStartOffset to a page. 2690 // A large object always starts at Page::kObjectStartOffset to a page.
2703 // Large objects do not move during garbage collections. 2691 // Large objects do not move during garbage collections.
2704 2692
(...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after
2778 intptr_t maximum_committed_; 2766 intptr_t maximum_committed_;
2779 // The head of the linked list of large object chunks. 2767 // The head of the linked list of large object chunks.
2780 LargePage* first_page_; 2768 LargePage* first_page_;
2781 intptr_t size_; // allocated bytes 2769 intptr_t size_; // allocated bytes
2782 int page_count_; // number of chunks 2770 int page_count_; // number of chunks
2783 intptr_t objects_size_; // size of objects 2771 intptr_t objects_size_; // size of objects
2784 // Map MemoryChunk::kAlignment-aligned chunks to large pages covering them 2772 // Map MemoryChunk::kAlignment-aligned chunks to large pages covering them
2785 HashMap chunk_map_; 2773 HashMap chunk_map_;
2786 2774
2787 friend class LargeObjectIterator; 2775 friend class LargeObjectIterator;
2788
2789 public:
2790 TRACK_MEMORY("LargeObjectSpace")
2791 }; 2776 };
2792 2777
2793 2778
2794 class LargeObjectIterator : public ObjectIterator { 2779 class LargeObjectIterator : public ObjectIterator {
2795 public: 2780 public:
2796 explicit LargeObjectIterator(LargeObjectSpace* space); 2781 explicit LargeObjectIterator(LargeObjectSpace* space);
2797 LargeObjectIterator(LargeObjectSpace* space, HeapObjectCallback size_func); 2782 LargeObjectIterator(LargeObjectSpace* space, HeapObjectCallback size_func);
2798 2783
2799 HeapObject* Next(); 2784 HeapObject* Next();
2800 2785
(...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after
2874 count = 0; 2859 count = 0;
2875 } 2860 }
2876 // Must be small, since an iteration is used for lookup. 2861 // Must be small, since an iteration is used for lookup.
2877 static const int kMaxComments = 64; 2862 static const int kMaxComments = 64;
2878 }; 2863 };
2879 #endif 2864 #endif
2880 } 2865 }
2881 } // namespace v8::internal 2866 } // namespace v8::internal
2882 2867
2883 #endif // V8_HEAP_SPACES_H_ 2868 #endif // V8_HEAP_SPACES_H_
OLDNEW
« no previous file with comments | « src/globals.h ('k') | src/log.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698