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

#include <cpu-profiler.h>

Inheritance diagram for v8::internal::SamplingEventsProcessor:
Collaboration diagram for v8::internal::SamplingEventsProcessor:

Public Member Functions

 SamplingEventsProcessor (Isolate *isolate, Symbolizer *symbolizer, ProfilerCodeObserver *code_observer, CpuProfilesCollection *profiles, base::TimeDelta period, bool use_precise_sampling)
 
 ~SamplingEventsProcessor () override
 
void * operator new (size_t size)
 
void operator delete (void *ptr)
 
void Run () override
 
void SetSamplingInterval (base::TimeDelta period) override
 
TickSampleStartTickSample ()
 
void FinishTickSample ()
 
sampler::Samplersampler ()
 
base::TimeDelta period () const
 
- Public Member Functions inherited from v8::internal::ProfilerEventsProcessor
 ~ProfilerEventsProcessor () override
 
void CodeEventHandler (const CodeEventsContainer &evt_rec) override
 
void StopSynchronously ()
 
bool running ()
 
void Enqueue (const CodeEventsContainer &event)
 
void AddCurrentStack (bool update_stats=false, const std::optional< uint64_t > trace_id=std::nullopt)
 
void AddDeoptStack (Address from, int fp_to_sp_delta)
 
void AddSample (TickSample sample)
 
- Public Member Functions inherited from v8::base::Thread
 Thread (const Options &options)
 
 Thread (const Thread &)=delete
 
Threadoperator= (const Thread &)=delete
 
virtual ~Thread ()
 
V8_WARN_UNUSED_RESULT bool Start ()
 
bool StartSynchronously ()
 
void Join ()
 
const char * name () const
 
PlatformDatadata ()
 
Priority priority () const
 
void NotifyStartedAndRun ()
 
- Public Member Functions inherited from v8::internal::CodeEventObserver
virtual ~CodeEventObserver ()=default
 

Private Member Functions

SampleProcessingResult ProcessOneSample () override
 
void SymbolizeAndAddToProfiles (const TickSampleEventRecord *record)
 

Private Attributes

SamplingCircularQueue< TickSampleEventRecord, kTickSampleQueueLengthticks_buffer_
 
std::unique_ptr< sampler::Samplersampler_
 
base::TimeDelta period_
 
const bool use_precise_sampling_
 

Static Private Attributes

static const size_t kTickSampleBufferSize = 512 * KB
 
static const size_t kTickSampleQueueLength
 

Additional Inherited Members

- Public Types inherited from v8::base::Thread
enum class  Priority { kBestEffort , kUserVisible , kUserBlocking , kDefault }
 
using LocalStorageKey = int32_t
 
- Static Public Member Functions inherited from v8::base::Thread
static LocalStorageKey CreateThreadLocalKey ()
 
static void DeleteThreadLocalKey (LocalStorageKey key)
 
static void * GetThreadLocal (LocalStorageKey key)
 
static void SetThreadLocal (LocalStorageKey key, void *value)
 
static bool HasThreadLocal (LocalStorageKey key)
 
static void * GetExistingThreadLocal (LocalStorageKey key)
 
- Static Public Attributes inherited from v8::base::Thread
static const int kMaxThreadNameLength = 16
 
- Protected Types inherited from v8::internal::ProfilerEventsProcessor
enum  SampleProcessingResult { OneSampleProcessed , FoundSampleForNextCodeEvent , NoSamplesInQueue }
 
- Protected Member Functions inherited from v8::internal::ProfilerEventsProcessor
 ProfilerEventsProcessor (Isolate *isolate, Symbolizer *symbolizer, ProfilerCodeObserver *code_observer, CpuProfilesCollection *profiles)
 
bool ProcessCodeEvent ()
 
- Protected Attributes inherited from v8::internal::ProfilerEventsProcessor
Symbolizersymbolizer_
 
ProfilerCodeObservercode_observer_
 
CpuProfilesCollectionprofiles_
 
std::atomic_bool running_ {true}
 
base::ConditionVariable running_cond_
 
base::Mutex running_mutex_
 
LockedQueue< CodeEventsContainerevents_buffer_
 
LockedQueue< TickSampleEventRecordticks_from_vm_buffer_
 
std::atomic< unsigned > last_code_event_id_
 
unsigned last_processed_code_event_id_
 
Isolateisolate_
 

Detailed Description

Definition at line 219 of file cpu-profiler.h.

Constructor & Destructor Documentation

◆ SamplingEventsProcessor()

v8::internal::SamplingEventsProcessor::SamplingEventsProcessor ( Isolate * isolate,
Symbolizer * symbolizer,
ProfilerCodeObserver * code_observer,
CpuProfilesCollection * profiles,
base::TimeDelta period,
bool use_precise_sampling )

Definition at line 125 of file cpu-profiler.cc.

Here is the call graph for this function:

◆ ~SamplingEventsProcessor()

v8::internal::SamplingEventsProcessor::~SamplingEventsProcessor ( )
override

Definition at line 140 of file cpu-profiler.cc.

Member Function Documentation

◆ FinishTickSample()

void v8::internal::SamplingEventsProcessor::FinishTickSample ( )
inline

Definition at line 87 of file cpu-profiler-inl.h.

Here is the caller graph for this function:

◆ operator delete()

void v8::internal::SamplingEventsProcessor::operator delete ( void * ptr)

Definition at line 357 of file cpu-profiler.cc.

Here is the call graph for this function:

◆ operator new()

void * v8::internal::SamplingEventsProcessor::operator new ( size_t size)

Definition at line 353 of file cpu-profiler.cc.

Here is the call graph for this function:

◆ period()

base::TimeDelta v8::internal::SamplingEventsProcessor::period ( ) const
inline

Definition at line 247 of file cpu-profiler.h.

Here is the caller graph for this function:

◆ ProcessOneSample()

ProfilerEventsProcessor::SampleProcessingResult v8::internal::SamplingEventsProcessor::ProcessOneSample ( )
overrideprivatevirtual

Implements v8::internal::ProfilerEventsProcessor.

Definition at line 255 of file cpu-profiler.cc.

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

◆ Run()

void v8::internal::SamplingEventsProcessor::Run ( )
overridevirtual

Implements v8::internal::ProfilerEventsProcessor.

Definition at line 278 of file cpu-profiler.cc.

Here is the call graph for this function:

◆ sampler()

sampler::Sampler * v8::internal::SamplingEventsProcessor::sampler ( )
inline

Definition at line 246 of file cpu-profiler.h.

◆ SetSamplingInterval()

void v8::internal::SamplingEventsProcessor::SetSamplingInterval ( base::TimeDelta period)
overridevirtual

Reimplemented from v8::internal::ProfilerEventsProcessor.

Definition at line 343 of file cpu-profiler.cc.

Here is the call graph for this function:

◆ StartTickSample()

TickSample * v8::internal::SamplingEventsProcessor::StartTickSample ( )
inline

Definition at line 73 of file cpu-profiler-inl.h.

Here is the caller graph for this function:

◆ SymbolizeAndAddToProfiles()

void v8::internal::SamplingEventsProcessor::SymbolizeAndAddToProfiles ( const TickSampleEventRecord * record)
private

Definition at line 240 of file cpu-profiler.cc.

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

Member Data Documentation

◆ kTickSampleBufferSize

const size_t v8::internal::SamplingEventsProcessor::kTickSampleBufferSize = 512 * KB
staticprivate

Definition at line 253 of file cpu-profiler.h.

◆ kTickSampleQueueLength

const size_t v8::internal::SamplingEventsProcessor::kTickSampleQueueLength
staticprivate
Initial value:
=
kTickSampleBufferSize / sizeof(TickSampleEventRecord)
static const size_t kTickSampleBufferSize

Definition at line 254 of file cpu-profiler.h.

◆ period_

base::TimeDelta v8::internal::SamplingEventsProcessor::period_
private

Definition at line 259 of file cpu-profiler.h.

◆ sampler_

std::unique_ptr<sampler::Sampler> v8::internal::SamplingEventsProcessor::sampler_
private

Definition at line 258 of file cpu-profiler.h.

◆ ticks_buffer_

SamplingCircularQueue<TickSampleEventRecord, kTickSampleQueueLength> v8::internal::SamplingEventsProcessor::ticks_buffer_
private

Definition at line 257 of file cpu-profiler.h.

◆ use_precise_sampling_

const bool v8::internal::SamplingEventsProcessor::use_precise_sampling_
private

Definition at line 260 of file cpu-profiler.h.


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