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

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

Issue 2085893002: [heap] Internalize kExternalAllocationLimit (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Initialize limit Created 4 years, 6 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/heap/array-buffer-tracker-inl.h ('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 803 matching lines...) Expand 10 before | Expand all | Expand 10 after
814 void RememberUnmappedPage(Address page, bool compacted); 814 void RememberUnmappedPage(Address page, bool compacted);
815 815
816 // Global inline caching age: it is incremented on some GCs after context 816 // Global inline caching age: it is incremented on some GCs after context
817 // disposal. We use it to flush inline caches. 817 // disposal. We use it to flush inline caches.
818 int global_ic_age() { return global_ic_age_; } 818 int global_ic_age() { return global_ic_age_; }
819 819
820 void AgeInlineCaches() { 820 void AgeInlineCaches() {
821 global_ic_age_ = (global_ic_age_ + 1) & SharedFunctionInfo::ICAgeBits::kMax; 821 global_ic_age_ = (global_ic_age_ + 1) & SharedFunctionInfo::ICAgeBits::kMax;
822 } 822 }
823 823
824 int64_t amount_of_external_allocated_memory() { 824 int64_t external_memory() { return external_memory_; }
825 return amount_of_external_allocated_memory_; 825 void update_external_memory(int64_t delta) { external_memory_ += delta; }
826
827 void update_external_memory_concurrently_freed(intptr_t freed) {
828 external_memory_concurrently_freed_.Increment(freed);
826 } 829 }
827 830
828 void update_amount_of_external_allocated_memory(int64_t delta) { 831 void account_external_memory_concurrently_freed() {
829 amount_of_external_allocated_memory_ += delta; 832 external_memory_ -= external_memory_concurrently_freed_.Value();
830 } 833 external_memory_concurrently_freed_.SetValue(0);
831
832 void update_amount_of_external_allocated_freed_memory(intptr_t freed) {
833 amount_of_external_allocated_memory_freed_.Increment(freed);
834 }
835
836 void account_amount_of_external_allocated_freed_memory() {
837 amount_of_external_allocated_memory_ -=
838 amount_of_external_allocated_memory_freed_.Value();
839 amount_of_external_allocated_memory_freed_.SetValue(0);
840 } 834 }
841 835
842 void DeoptMarkedAllocationSites(); 836 void DeoptMarkedAllocationSites();
843 837
844 bool DeoptMaybeTenuredAllocationSites() { 838 bool DeoptMaybeTenuredAllocationSites() {
845 return new_space_.IsAtMaximumCapacity() && maximum_size_scavenges_ == 0; 839 return new_space_.IsAtMaximumCapacity() && maximum_size_scavenges_ == 0;
846 } 840 }
847 841
848 void AddWeakObjectToCodeDependency(Handle<HeapObject> obj, 842 void AddWeakObjectToCodeDependency(Handle<HeapObject> obj,
849 Handle<DependentCode> dep); 843 Handle<DependentCode> dep);
(...skipping 1140 matching lines...) Expand 10 before | Expand all | Expand 10 after
1990 AllocateCode(int object_size, bool immovable); 1984 AllocateCode(int object_size, bool immovable);
1991 1985
1992 MUST_USE_RESULT AllocationResult InternalizeStringWithKey(HashTableKey* key); 1986 MUST_USE_RESULT AllocationResult InternalizeStringWithKey(HashTableKey* key);
1993 1987
1994 MUST_USE_RESULT AllocationResult InternalizeString(String* str); 1988 MUST_USE_RESULT AllocationResult InternalizeString(String* str);
1995 1989
1996 // =========================================================================== 1990 // ===========================================================================
1997 1991
1998 void set_force_oom(bool value) { force_oom_ = value; } 1992 void set_force_oom(bool value) { force_oom_ = value; }
1999 1993
2000 // The amount of external memory registered through the API kept alive 1994 // The amount of external memory registered through the API.
2001 // by global handles 1995 int64_t external_memory_;
2002 int64_t amount_of_external_allocated_memory_;
2003 1996
2004 // Caches the amount of external memory registered at the last global gc. 1997 // The limit when to trigger memory pressure from the API.
2005 int64_t amount_of_external_allocated_memory_at_last_global_gc_; 1998 int64_t external_memory_limit_;
2006 1999
2007 base::AtomicNumber<intptr_t> amount_of_external_allocated_memory_freed_; 2000 // Caches the amount of external memory registered at the last MC.
2001 int64_t external_memory_at_last_mark_compact_;
2002
2003 // The amount of memory that has been freed concurrently.
2004 base::AtomicNumber<intptr_t> external_memory_concurrently_freed_;
2008 2005
2009 // This can be calculated directly from a pointer to the heap; however, it is 2006 // This can be calculated directly from a pointer to the heap; however, it is
2010 // more expedient to get at the isolate directly from within Heap methods. 2007 // more expedient to get at the isolate directly from within Heap methods.
2011 Isolate* isolate_; 2008 Isolate* isolate_;
2012 2009
2013 Object* roots_[kRootListLength]; 2010 Object* roots_[kRootListLength];
2014 2011
2015 size_t code_range_size_; 2012 size_t code_range_size_;
2016 int max_semi_space_size_; 2013 int max_semi_space_size_;
2017 int initial_semispace_size_; 2014 int initial_semispace_size_;
(...skipping 651 matching lines...) Expand 10 before | Expand all | Expand 10 after
2669 friend class LargeObjectSpace; 2666 friend class LargeObjectSpace;
2670 friend class NewSpace; 2667 friend class NewSpace;
2671 friend class PagedSpace; 2668 friend class PagedSpace;
2672 DISALLOW_COPY_AND_ASSIGN(AllocationObserver); 2669 DISALLOW_COPY_AND_ASSIGN(AllocationObserver);
2673 }; 2670 };
2674 2671
2675 } // namespace internal 2672 } // namespace internal
2676 } // namespace v8 2673 } // namespace v8
2677 2674
2678 #endif // V8_HEAP_HEAP_H_ 2675 #endif // V8_HEAP_HEAP_H_
OLDNEW
« no previous file with comments | « src/heap/array-buffer-tracker-inl.h ('k') | src/heap/heap.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698