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

Side by Side Diff: src/objects.h

Issue 1361853005: [heap] Prepare code for smaller large object allocation limit than max allocatable memory. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Created 5 years, 2 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
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_OBJECTS_H_ 5 #ifndef V8_OBJECTS_H_
6 #define V8_OBJECTS_H_ 6 #define V8_OBJECTS_H_
7 7
8 #include <iosfwd> 8 #include <iosfwd>
9 9
10 #include "src/allocation.h" 10 #include "src/allocation.h"
(...skipping 2341 matching lines...) Expand 10 before | Expand all | Expand 10 after
2352 static const uint32_t kMaxGap = 1024; 2352 static const uint32_t kMaxGap = 1024;
2353 2353
2354 // Maximal length of fast elements array that won't be checked for 2354 // Maximal length of fast elements array that won't be checked for
2355 // being dense enough on expansion. 2355 // being dense enough on expansion.
2356 static const int kMaxUncheckedFastElementsLength = 5000; 2356 static const int kMaxUncheckedFastElementsLength = 5000;
2357 2357
2358 // Same as above but for old arrays. This limit is more strict. We 2358 // Same as above but for old arrays. This limit is more strict. We
2359 // don't want to be wasteful with long lived objects. 2359 // don't want to be wasteful with long lived objects.
2360 static const int kMaxUncheckedOldFastElementsLength = 500; 2360 static const int kMaxUncheckedOldFastElementsLength = 500;
2361 2361
2362 // Note that Page::kMaxRegularHeapObjectSize puts a limit on
2363 // permissible values (see the DCHECK in heap.cc).
2364 static const int kInitialMaxFastElementArray = 100000;
2365
2366 // This constant applies only to the initial map of "global.Object" and 2362 // This constant applies only to the initial map of "global.Object" and
2367 // not to arbitrary other JSObject maps. 2363 // not to arbitrary other JSObject maps.
2368 static const int kInitialGlobalObjectUnusedPropertiesCount = 4; 2364 static const int kInitialGlobalObjectUnusedPropertiesCount = 4;
2369 2365
2370 static const int kMaxInstanceSize = 255 * kPointerSize; 2366 static const int kMaxInstanceSize = 255 * kPointerSize;
2371 // When extending the backing storage for property values, we increase 2367 // When extending the backing storage for property values, we increase
2372 // its size by more than the 1 entry necessary, so sequentially adding fields 2368 // its size by more than the 1 entry necessary, so sequentially adding fields
2373 // to the same object requires fewer allocations and copies. 2369 // to the same object requires fewer allocations and copies.
2374 static const int kFieldsAdded = 3; 2370 static const int kFieldsAdded = 3;
2375 2371
(...skipping 7611 matching lines...) Expand 10 before | Expand all | Expand 10 after
9987 DECLARE_PRINTER(JSArray) 9983 DECLARE_PRINTER(JSArray)
9988 DECLARE_VERIFIER(JSArray) 9984 DECLARE_VERIFIER(JSArray)
9989 9985
9990 // Number of element slots to pre-allocate for an empty array. 9986 // Number of element slots to pre-allocate for an empty array.
9991 static const int kPreallocatedArrayElements = 4; 9987 static const int kPreallocatedArrayElements = 4;
9992 9988
9993 // Layout description. 9989 // Layout description.
9994 static const int kLengthOffset = JSObject::kHeaderSize; 9990 static const int kLengthOffset = JSObject::kHeaderSize;
9995 static const int kSize = kLengthOffset + kPointerSize; 9991 static const int kSize = kLengthOffset + kPointerSize;
9996 9992
9993 // Note that Page::kMaxRegularHeapObjectSize puts a limit on
9994 // permissible values (see the DCHECK in heap.cc).
9995 static const int kInitialMaxFastElementArray = 100000;
9996
9997 private: 9997 private:
9998 DISALLOW_IMPLICIT_CONSTRUCTORS(JSArray); 9998 DISALLOW_IMPLICIT_CONSTRUCTORS(JSArray);
9999 }; 9999 };
10000 10000
10001 10001
10002 Handle<Object> CacheInitialJSArrayMaps(Handle<Context> native_context, 10002 Handle<Object> CacheInitialJSArrayMaps(Handle<Context> native_context,
10003 Handle<Map> initial_map); 10003 Handle<Map> initial_map);
10004 10004
10005 10005
10006 // JSRegExpResult is just a JSArray with a specific initial map. 10006 // JSRegExpResult is just a JSArray with a specific initial map.
(...skipping 613 matching lines...) Expand 10 before | Expand all | Expand 10 after
10620 10620
10621 Isolate* isolate_; 10621 Isolate* isolate_;
10622 Handle<FixedArray> keys_; 10622 Handle<FixedArray> keys_;
10623 Handle<OrderedHashSet> set_; 10623 Handle<OrderedHashSet> set_;
10624 int length_; 10624 int length_;
10625 DISALLOW_COPY_AND_ASSIGN(KeyAccumulator); 10625 DISALLOW_COPY_AND_ASSIGN(KeyAccumulator);
10626 }; 10626 };
10627 } } // namespace v8::internal 10627 } } // namespace v8::internal
10628 10628
10629 #endif // V8_OBJECTS_H_ 10629 #endif // V8_OBJECTS_H_
OLDNEW
« no previous file with comments | « src/hydrogen.cc ('k') | src/runtime/runtime-array.cc » ('j') | test/cctest/test-api.cc » ('J')

Powered by Google App Engine
This is Rietveld 408576698