v8
V8 is Google’s open source high-performance JavaScript and WebAssembly engine, written in C++.
Loading...
Searching...
No Matches
v8::internal::ObjectStatsCollectorImpl Class Reference
Collaboration diagram for v8::internal::ObjectStatsCollectorImpl:

Public Types

enum  Phase { kPhase1 , kPhase2 }
 
enum class  CollectFieldStats { kNo , kYes }
 

Public Member Functions

 ObjectStatsCollectorImpl (Heap *heap, ObjectStats *stats)
 
void CollectGlobalStatistics ()
 
void CollectStatistics (Tagged< HeapObject > obj, Phase phase, CollectFieldStats collect_field_stats)
 

Static Public Attributes

static const int kNumberOfPhases = kPhase2 + 1
 

Private Types

enum  CowMode { kCheckCow , kIgnoreCow }
 

Private Member Functions

Isolateisolate ()
 
bool RecordVirtualObjectStats (Tagged< HeapObject > parent, Tagged< HeapObject > obj, ObjectStats::VirtualInstanceType type, size_t size, size_t over_allocated, CowMode check_cow_array=kCheckCow)
 
void RecordExternalResourceStats (Address resource, ObjectStats::VirtualInstanceType type, size_t size)
 
bool RecordSimpleVirtualObjectStats (Tagged< HeapObject > parent, Tagged< HeapObject > obj, ObjectStats::VirtualInstanceType type)
 
void RecordPotentialDescriptorArraySavingsStats (Tagged< DescriptorArray > obj)
 
template<typename Dictionary >
void RecordHashTableVirtualObjectStats (Tagged< HeapObject > parent, Tagged< Dictionary > hash_table, ObjectStats::VirtualInstanceType type)
 
bool SameLiveness (Tagged< HeapObject > obj1, Tagged< HeapObject > obj2)
 
bool CanRecordFixedArray (Tagged< FixedArrayBase > array)
 
bool IsCowArray (Tagged< FixedArrayBase > array)
 
bool ShouldRecordObject (Tagged< HeapObject > object, CowMode check_cow_array)
 
bool RecordObjectStats (Tagged< HeapObject > obj, InstanceType type, size_t size, size_t over_allocated=ObjectStats::kNoOverAllocation)
 
void RecordVirtualObjectsForConstantPoolOrEmbeddedObjects (Tagged< HeapObject > parent, Tagged< HeapObject > object, ObjectStats::VirtualInstanceType type)
 
void RecordVirtualAllocationSiteDetails (Tagged< AllocationSite > site)
 
void RecordVirtualBytecodeArrayDetails (Tagged< BytecodeArray > bytecode)
 
void RecordVirtualCodeDetails (Tagged< InstructionStream > code)
 
void RecordVirtualContext (Tagged< Context > context)
 
void RecordVirtualFeedbackVectorDetails (Tagged< FeedbackVector > vector)
 
void RecordVirtualFixedArrayDetails (Tagged< FixedArray > array)
 
void RecordVirtualFunctionTemplateInfoDetails (Tagged< FunctionTemplateInfo > fti)
 
void RecordVirtualJSGlobalObjectDetails (Tagged< JSGlobalObject > object)
 
void RecordVirtualJSObjectDetails (Tagged< JSObject > object)
 
void RecordVirtualMapDetails (Tagged< Map > map)
 
void RecordVirtualScriptDetails (Tagged< Script > script)
 
void RecordVirtualExternalStringDetails (Tagged< ExternalString > script)
 
void RecordVirtualSharedFunctionInfoDetails (Tagged< SharedFunctionInfo > info)
 
void RecordVirtualArrayBoilerplateDescription (Tagged< ArrayBoilerplateDescription > description)
 
PtrComprCageBase cage_base () const
 

Private Attributes

Heap *const heap_
 
ObjectStats *const stats_
 
NonAtomicMarkingState *const marking_state_
 
std::unordered_set< Tagged< HeapObject >, Object::Hasher, Object::KeyEqualSafevirtual_objects_
 
std::unordered_set< Addressexternal_resources_
 
FieldStatsCollector field_stats_collector_
 

Detailed Description

Definition at line 384 of file object-stats.cc.

Member Enumeration Documentation

◆ CollectFieldStats

Enumerator
kNo 
kYes 

Definition at line 396 of file object-stats.cc.

◆ CowMode

Enumerator
kCheckCow 
kIgnoreCow 

Definition at line 401 of file object-stats.cc.

◆ Phase

Enumerator
kPhase1 
kPhase2 

Definition at line 386 of file object-stats.cc.

Constructor & Destructor Documentation

◆ ObjectStatsCollectorImpl()

v8::internal::ObjectStatsCollectorImpl::ObjectStatsCollectorImpl ( Heap * heap,
ObjectStats * stats )

Definition at line 481 of file object-stats.cc.

Member Function Documentation

◆ cage_base()

PtrComprCageBase v8::internal::ObjectStatsCollectorImpl::cage_base ( ) const
inlineprivate

Definition at line 468 of file object-stats.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ CanRecordFixedArray()

bool v8::internal::ObjectStatsCollectorImpl::CanRecordFixedArray ( Tagged< FixedArrayBase > array)
private

Definition at line 896 of file object-stats.cc.

Here is the caller graph for this function:

◆ CollectGlobalStatistics()

void v8::internal::ObjectStatsCollectorImpl::CollectGlobalStatistics ( )

Definition at line 858 of file object-stats.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ CollectStatistics()

void v8::internal::ObjectStatsCollectorImpl::CollectStatistics ( Tagged< HeapObject > obj,
Phase phase,
CollectFieldStats collect_field_stats )

Definition at line 792 of file object-stats.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ IsCowArray()

bool v8::internal::ObjectStatsCollectorImpl::IsCowArray ( Tagged< FixedArrayBase > array)
private

Definition at line 904 of file object-stats.cc.

Here is the caller graph for this function:

◆ isolate()

Isolate * v8::internal::ObjectStatsCollectorImpl::isolate ( )
inlineprivate

Definition at line 406 of file object-stats.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ RecordExternalResourceStats()

void v8::internal::ObjectStatsCollectorImpl::RecordExternalResourceStats ( Address resource,
ObjectStats::VirtualInstanceType type,
size_t size )
private

Definition at line 570 of file object-stats.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ RecordHashTableVirtualObjectStats()

template<typename Dictionary >
void v8::internal::ObjectStatsCollectorImpl::RecordHashTableVirtualObjectStats ( Tagged< HeapObject > parent,
Tagged< Dictionary > hash_table,
ObjectStats::VirtualInstanceType type )
private

Definition at line 504 of file object-stats.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ RecordObjectStats()

bool v8::internal::ObjectStatsCollectorImpl::RecordObjectStats ( Tagged< HeapObject > obj,
InstanceType type,
size_t size,
size_t over_allocated = ObjectStats::kNoOverAllocation )
private

Definition at line 886 of file object-stats.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ RecordPotentialDescriptorArraySavingsStats()

void v8::internal::ObjectStatsCollectorImpl::RecordPotentialDescriptorArraySavingsStats ( Tagged< DescriptorArray > obj)
private

Definition at line 522 of file object-stats.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ RecordSimpleVirtualObjectStats()

bool v8::internal::ObjectStatsCollectorImpl::RecordSimpleVirtualObjectStats ( Tagged< HeapObject > parent,
Tagged< HeapObject > obj,
ObjectStats::VirtualInstanceType type )
private

Definition at line 515 of file object-stats.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ RecordVirtualAllocationSiteDetails()

void v8::internal::ObjectStatsCollectorImpl::RecordVirtualAllocationSiteDetails ( Tagged< AllocationSite > site)
private

Definition at line 578 of file object-stats.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ RecordVirtualArrayBoilerplateDescription()

void v8::internal::ObjectStatsCollectorImpl::RecordVirtualArrayBoilerplateDescription ( Tagged< ArrayBoilerplateDescription > description)
private

Definition at line 1043 of file object-stats.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ RecordVirtualBytecodeArrayDetails()

void v8::internal::ObjectStatsCollectorImpl::RecordVirtualBytecodeArrayDetails ( Tagged< BytecodeArray > bytecode)
private

Definition at line 1066 of file object-stats.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ RecordVirtualCodeDetails()

void v8::internal::ObjectStatsCollectorImpl::RecordVirtualCodeDetails ( Tagged< InstructionStream > code)
private

Definition at line 1105 of file object-stats.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ RecordVirtualContext()

void v8::internal::ObjectStatsCollectorImpl::RecordVirtualContext ( Tagged< Context > context)
private

Definition at line 1141 of file object-stats.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ RecordVirtualExternalStringDetails()

void v8::internal::ObjectStatsCollectorImpl::RecordVirtualExternalStringDetails ( Tagged< ExternalString > script)
private

Definition at line 1020 of file object-stats.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ RecordVirtualFeedbackVectorDetails()

void v8::internal::ObjectStatsCollectorImpl::RecordVirtualFeedbackVectorDetails ( Tagged< FeedbackVector > vector)
private

Definition at line 738 of file object-stats.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ RecordVirtualFixedArrayDetails()

void v8::internal::ObjectStatsCollectorImpl::RecordVirtualFixedArrayDetails ( Tagged< FixedArray > array)
private

Definition at line 783 of file object-stats.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ RecordVirtualFunctionTemplateInfoDetails()

void v8::internal::ObjectStatsCollectorImpl::RecordVirtualFunctionTemplateInfoDetails ( Tagged< FunctionTemplateInfo > fti)
private

Definition at line 607 of file object-stats.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ RecordVirtualJSGlobalObjectDetails()

void v8::internal::ObjectStatsCollectorImpl::RecordVirtualJSGlobalObjectDetails ( Tagged< JSGlobalObject > object)
private

Definition at line 618 of file object-stats.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ RecordVirtualJSObjectDetails()

void v8::internal::ObjectStatsCollectorImpl::RecordVirtualJSObjectDetails ( Tagged< JSObject > object)
private

Definition at line 630 of file object-stats.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ RecordVirtualMapDetails()

void v8::internal::ObjectStatsCollectorImpl::RecordVirtualMapDetails ( Tagged< Map > map)
private

Definition at line 918 of file object-stats.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ RecordVirtualObjectsForConstantPoolOrEmbeddedObjects()

void v8::internal::ObjectStatsCollectorImpl::RecordVirtualObjectsForConstantPoolOrEmbeddedObjects ( Tagged< HeapObject > parent,
Tagged< HeapObject > object,
ObjectStats::VirtualInstanceType type )
private

Definition at line 1050 of file object-stats.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ RecordVirtualObjectStats()

bool v8::internal::ObjectStatsCollectorImpl::RecordVirtualObjectStats ( Tagged< HeapObject > parent,
Tagged< HeapObject > obj,
ObjectStats::VirtualInstanceType type,
size_t size,
size_t over_allocated,
CowMode check_cow_array = kCheckCow )
private

Definition at line 553 of file object-stats.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ RecordVirtualScriptDetails()

void v8::internal::ObjectStatsCollectorImpl::RecordVirtualScriptDetails ( Tagged< Script > script)
private

Definition at line 990 of file object-stats.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ RecordVirtualSharedFunctionInfoDetails()

void v8::internal::ObjectStatsCollectorImpl::RecordVirtualSharedFunctionInfoDetails ( Tagged< SharedFunctionInfo > info)
private

Definition at line 1034 of file object-stats.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ SameLiveness()

bool v8::internal::ObjectStatsCollectorImpl::SameLiveness ( Tagged< HeapObject > obj1,
Tagged< HeapObject > obj2 )
private

Definition at line 908 of file object-stats.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ ShouldRecordObject()

bool v8::internal::ObjectStatsCollectorImpl::ShouldRecordObject ( Tagged< HeapObject > object,
CowMode check_cow_array )
private

Definition at line 492 of file object-stats.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

Member Data Documentation

◆ external_resources_

std::unordered_set<Address> v8::internal::ObjectStatsCollectorImpl::external_resources_
private

Definition at line 477 of file object-stats.cc.

◆ field_stats_collector_

FieldStatsCollector v8::internal::ObjectStatsCollectorImpl::field_stats_collector_
private

Definition at line 478 of file object-stats.cc.

◆ heap_

Heap* const v8::internal::ObjectStatsCollectorImpl::heap_
private

Definition at line 472 of file object-stats.cc.

◆ kNumberOfPhases

const int v8::internal::ObjectStatsCollectorImpl::kNumberOfPhases = kPhase2 + 1
static

Definition at line 390 of file object-stats.cc.

◆ marking_state_

NonAtomicMarkingState* const v8::internal::ObjectStatsCollectorImpl::marking_state_
private

Definition at line 474 of file object-stats.cc.

◆ stats_

ObjectStats* const v8::internal::ObjectStatsCollectorImpl::stats_
private

Definition at line 473 of file object-stats.cc.

◆ virtual_objects_

std::unordered_set<Tagged<HeapObject>, Object::Hasher, Object::KeyEqualSafe> v8::internal::ObjectStatsCollectorImpl::virtual_objects_
private

Definition at line 476 of file object-stats.cc.


The documentation for this class was generated from the following file: