5 #ifndef V8_HEAP_GC_TRACER_H_
6 #define V8_HEAP_GC_TRACER_H_
15 template <
typename T,
size_t MAX_SIZE>
58 return (
end_ -
begin_ + MAX_SIZE + 1) % (MAX_SIZE + 1);
158 const char*
TypeName(
bool short_name)
const;
248 const char* collector_reason);
static double TimeCurrentMillis()
intptr_t allocation_in_bytes_
double cumulative_pure_incremental_marking_duration
int incremental_marking_steps
double cumulative_incremental_marking_duration
const char * collector_reason
double longest_incremental_marking_step
int cumulative_incremental_marking_steps
intptr_t start_holes_size
double pure_incremental_marking_duration
intptr_t start_object_size
const char * TypeName(bool short_name) const
intptr_t incremental_marking_bytes
double incremental_marking_duration
intptr_t new_space_object_size
intptr_t cumulative_incremental_marking_bytes
double scopes[Scope::NUMBER_OF_SCOPES]
intptr_t start_memory_size
@ MC_UPDATE_POINTERS_TO_EVACUATED
@ MC_UPDATE_OLD_TO_NEW_POINTERS
@ MC_UPDATE_NEW_TO_NEW_POINTERS
@ MC_UPDATE_MISC_POINTERS
@ MC_WEAKCOLLECTION_PROCESS
@ MC_UPDATE_ROOT_TO_NEW_POINTERS
@ MC_WEAKCOLLECTION_ABORT
@ MC_WEAKCOLLECTION_CLEAR
@ MC_UPDATE_POINTERS_BETWEEN_EVACUATED
Scope(GCTracer *tracer, ScopeId scope)
DISALLOW_COPY_AND_ASSIGN(Scope)
double MeanMarkCompactorDuration() const
double cumulative_sweeping_duration() const
double longest_incremental_marking_step_
intptr_t MarkCompactSpeedInBytesPerMillisecond() const
int cumulative_incremental_marking_steps_
double MaxMarkCompactorDuration() const
double MaxDuration(const EventBuffer &events) const
void AddSweepingTime(double duration)
DISALLOW_COPY_AND_ASSIGN(GCTracer)
double cumulative_marking_duration() const
void AddIncrementalMarkingStep(double duration, intptr_t bytes)
static const int kRingBufferMaxSize
intptr_t IncrementalMarkingSpeedInBytesPerMillisecond() const
double MeanDuration(const EventBuffer &events) const
double cumulative_pure_incremental_marking_duration_
double MeanScavengerDuration() const
double MaxIncrementalMarkingDuration() const
double MaxScavengerDuration() const
intptr_t ScavengeSpeedInBytesPerMillisecond() const
double cumulative_incremental_marking_duration_
double MeanIncrementalMarkingDuration() const
Event previous_mark_compactor_event_
void AddMarkingTime(double duration)
RingBuffer< Event, kRingBufferMaxSize > EventBuffer
void Start(GarbageCollector collector, const char *gc_reason, const char *collector_reason)
double cumulative_sweeping_duration_
intptr_t NewSpaceAllocationThroughputInBytesPerMillisecond() const
void AddNewSpaceAllocationTime(double duration, intptr_t allocation_in_bytes)
intptr_t new_space_top_after_gc_
AllocationEventBuffer allocation_events_
EventBuffer mark_compactor_events_
RingBuffer< AllocationEvent, kRingBufferMaxSize > AllocationEventBuffer
intptr_t cumulative_incremental_marking_bytes_
EventBuffer scavenger_events_
double cumulative_marking_duration_
const T * operator->() const
const T & operator*() const
bool operator==(const const_iterator &rhs) const
const_iterator & operator++()
const_iterator & operator--()
bool operator!=(const const_iterator &rhs) const
const_iterator(size_t index, const T *elements)
void push_front(const T &element)
const_iterator begin() const
DISALLOW_COPY_AND_ASSIGN(RingBuffer)
const_iterator end() const
void push_back(const T &element)
const_iterator back() const
enable harmony numeric enable harmony object literal extensions Optimize object Array DOM strings and string trace pretenuring decisions of HAllocate instructions Enables optimizations which favor memory size over execution speed maximum source size in bytes considered for a single inlining maximum cumulative number of AST nodes considered for inlining trace the tracking of allocation sites deoptimize every n garbage collections perform array bounds checks elimination analyze liveness of environment slots and zap dead values flushes the cache of optimized code for closures on every GC allow uint32 values on optimize frames if they are used only in safe operations track concurrent recompilation artificial compilation delay in ms do not emit check maps for constant values that have a leaf deoptimize the optimized code if the layout of the maps changes enable context specialization in TurboFan execution budget before interrupt is triggered max percentage of megamorphic generic ICs to allow optimization enable use of SAHF instruction if enable use of VFP3 instructions if available enable use of NEON instructions if enable use of SDIV and UDIV instructions if enable use of MLS instructions if enable loading bit constant by means of movw movt instruction enable unaligned accesses for enable use of d16 d31 registers on ARM this requires VFP3 force all emitted branches to be in long enable alignment of csp to bytes on platforms which prefer the register to always be NULL
#define DCHECK(condition)
Debugger support for the V8 JavaScript engine.
#define T(name, string, precedence)