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

Side by Side Diff: src/heap.h

Issue 19934006: Simplified large object allocation strategy. (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Created 7 years, 5 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 | Annotate | Revision Log
« no previous file with comments | « src/arm/macro-assembler-arm.cc ('k') | src/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 // Redistribution and use in source and binary forms, with or without 2 // Redistribution and use in source and binary forms, with or without
3 // modification, are permitted provided that the following conditions are 3 // modification, are permitted provided that the following conditions are
4 // met: 4 // met:
5 // 5 //
6 // * Redistributions of source code must retain the above copyright 6 // * Redistributions of source code must retain the above copyright
7 // notice, this list of conditions and the following disclaimer. 7 // notice, this list of conditions and the following disclaimer.
8 // * Redistributions in binary form must reproduce the above 8 // * Redistributions in binary form must reproduce the above
9 // copyright notice, this list of conditions and the following 9 // copyright notice, this list of conditions and the following
10 // disclaimer in the documentation and/or other materials provided 10 // disclaimer in the documentation and/or other materials provided
(...skipping 1698 matching lines...) Expand 10 before | Expand all | Expand 10 after
1709 void ProcessWeakReferences(WeakObjectRetainer* retainer); 1709 void ProcessWeakReferences(WeakObjectRetainer* retainer);
1710 1710
1711 void VisitExternalResources(v8::ExternalResourceVisitor* visitor); 1711 void VisitExternalResources(v8::ExternalResourceVisitor* visitor);
1712 1712
1713 // Helper function that governs the promotion policy from new space to 1713 // Helper function that governs the promotion policy from new space to
1714 // old. If the object's old address lies below the new space's age 1714 // old. If the object's old address lies below the new space's age
1715 // mark or if we've already filled the bottom 1/16th of the to space, 1715 // mark or if we've already filled the bottom 1/16th of the to space,
1716 // we try to promote this object. 1716 // we try to promote this object.
1717 inline bool ShouldBePromoted(Address old_address, int object_size); 1717 inline bool ShouldBePromoted(Address old_address, int object_size);
1718 1718
1719 int MaxObjectSizeInNewSpace() { return kMaxObjectSizeInNewSpace; }
1720
1721 void ClearJSFunctionResultCaches(); 1719 void ClearJSFunctionResultCaches();
1722 1720
1723 void ClearNormalizedMapCaches(); 1721 void ClearNormalizedMapCaches();
1724 1722
1725 GCTracer* tracer() { return tracer_; } 1723 GCTracer* tracer() { return tracer_; }
1726 1724
1727 // Returns the size of objects residing in non new spaces. 1725 // Returns the size of objects residing in non new spaces.
1728 intptr_t PromotedSpaceSizeOfObjects(); 1726 intptr_t PromotedSpaceSizeOfObjects();
1729 1727
1730 double total_regexp_code_generated() { return total_regexp_code_generated_; } 1728 double total_regexp_code_generated() { return total_regexp_code_generated_; }
(...skipping 228 matching lines...) Expand 10 before | Expand all | Expand 10 after
1959 1957
1960 // For keeping track of context disposals. 1958 // For keeping track of context disposals.
1961 int contexts_disposed_; 1959 int contexts_disposed_;
1962 1960
1963 int global_ic_age_; 1961 int global_ic_age_;
1964 1962
1965 bool flush_monomorphic_ics_; 1963 bool flush_monomorphic_ics_;
1966 1964
1967 int scan_on_scavenge_pages_; 1965 int scan_on_scavenge_pages_;
1968 1966
1969 #if V8_TARGET_ARCH_X64
1970 static const int kMaxObjectSizeInNewSpace = 1024*KB;
1971 #else
1972 static const int kMaxObjectSizeInNewSpace = 512*KB;
1973 #endif
1974
1975 NewSpace new_space_; 1967 NewSpace new_space_;
1976 OldSpace* old_pointer_space_; 1968 OldSpace* old_pointer_space_;
1977 OldSpace* old_data_space_; 1969 OldSpace* old_data_space_;
1978 OldSpace* code_space_; 1970 OldSpace* code_space_;
1979 MapSpace* map_space_; 1971 MapSpace* map_space_;
1980 CellSpace* cell_space_; 1972 CellSpace* cell_space_;
1981 PropertyCellSpace* property_cell_space_; 1973 PropertyCellSpace* property_cell_space_;
1982 LargeObjectSpace* lo_space_; 1974 LargeObjectSpace* lo_space_;
1983 HeapState gc_state_; 1975 HeapState gc_state_;
1984 int gc_post_processing_depth_; 1976 int gc_post_processing_depth_;
(...skipping 1106 matching lines...) Expand 10 before | Expand all | Expand 10 after
3091 DisallowHeapAllocation no_allocation; // i.e. no gc allowed. 3083 DisallowHeapAllocation no_allocation; // i.e. no gc allowed.
3092 3084
3093 private: 3085 private:
3094 DISALLOW_IMPLICIT_CONSTRUCTORS(PathTracer); 3086 DISALLOW_IMPLICIT_CONSTRUCTORS(PathTracer);
3095 }; 3087 };
3096 #endif // DEBUG 3088 #endif // DEBUG
3097 3089
3098 } } // namespace v8::internal 3090 } } // namespace v8::internal
3099 3091
3100 #endif // V8_HEAP_H_ 3092 #endif // V8_HEAP_H_
OLDNEW
« no previous file with comments | « src/arm/macro-assembler-arm.cc ('k') | src/heap.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698