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

#include <cpu-profiler.h>

Collaboration diagram for v8::internal::CpuProfiler:

Public Types

using ProfilingMode = v8::CpuProfilingMode
 
using CpuProfilingResult = v8::CpuProfilingResult
 
using NamingMode = v8::CpuProfilingNamingMode
 
using LoggingMode = v8::CpuProfilingLoggingMode
 
using StartProfilingStatus = CpuProfilingStatus
 

Public Member Functions

 CpuProfiler (Isolate *isolate, CpuProfilingNamingMode=kDebugNaming, CpuProfilingLoggingMode=kLazyLogging)
 
 CpuProfiler (Isolate *isolate, CpuProfilingNamingMode naming_mode, CpuProfilingLoggingMode logging_mode, CpuProfilesCollection *profiles, Symbolizer *test_symbolizer, ProfilerEventsProcessor *test_processor, ProfilerCodeObserver *test_code_observer)
 
 ~CpuProfiler ()
 
 CpuProfiler (const CpuProfiler &)=delete
 
CpuProfileroperator= (const CpuProfiler &)=delete
 
base::TimeDelta sampling_interval () const
 
void set_sampling_interval (base::TimeDelta value)
 
void set_use_precise_sampling (bool)
 
void CollectSample (const std::optional< uint64_t > trace_id=std::nullopt)
 
size_t GetEstimatedMemoryUsage () const
 
CpuProfilingResult StartProfiling (CpuProfilingOptions options={}, std::unique_ptr< DiscardedSamplesDelegate > delegate=nullptr)
 
CpuProfilingResult StartProfiling (const char *title, CpuProfilingOptions options={}, std::unique_ptr< DiscardedSamplesDelegate > delegate=nullptr)
 
CpuProfilingResult StartProfiling (Tagged< String > title, CpuProfilingOptions options={}, std::unique_ptr< DiscardedSamplesDelegate > delegate=nullptr)
 
CpuProfileStopProfiling (const char *title)
 
CpuProfileStopProfiling (Tagged< String > title)
 
CpuProfileStopProfiling (ProfilerId id)
 
int GetProfilesCount ()
 
CpuProfileGetProfile (int index)
 
void DeleteAllProfiles ()
 
void DeleteProfile (CpuProfile *profile)
 
bool is_profiling () const
 
Symbolizersymbolizer () const
 
ProfilerEventsProcessorprocessor () const
 
Isolateisolate () const
 
CodeEntryStoragecode_entries ()
 
ProfilerListenerprofiler_listener_for_test () const
 
InstructionStreamMapcode_map_for_test ()
 

Static Public Member Functions

static void CollectSample (Isolate *isolate, std::optional< uint64_t > trace_id=std::nullopt)
 
static size_t GetAllProfilersMemorySize (Isolate *isolate)
 

Private Member Functions

void StartProcessorIfNotStarted ()
 
void StopProcessor ()
 
void ResetProfiles ()
 
void EnableLogging ()
 
void DisableLogging ()
 
base::TimeDelta ComputeSamplingInterval ()
 
void AdjustSamplingInterval ()
 

Private Attributes

Isolate *const isolate_
 
const NamingMode naming_mode_
 
const LoggingMode logging_mode_
 
bool use_precise_sampling_ = true
 
base::TimeDelta base_sampling_interval_
 
CodeEntryStorage code_entries_
 
std::unique_ptr< ProfilerCodeObservercode_observer_
 
std::unique_ptr< CpuProfilesCollectionprofiles_
 
std::unique_ptr< Symbolizersymbolizer_
 
std::unique_ptr< ProfilerEventsProcessorprocessor_
 
std::unique_ptr< ProfilerListenerprofiler_listener_
 
std::unique_ptr< ProfilingScopeprofiling_scope_
 
bool is_profiling_
 

Detailed Description

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

Member Typedef Documentation

◆ CpuProfilingResult

◆ LoggingMode

◆ NamingMode

◆ ProfilingMode

◆ StartProfilingStatus

Constructor & Destructor Documentation

◆ CpuProfiler() [1/3]

v8::internal::CpuProfiler::CpuProfiler ( Isolate * isolate,
CpuProfilingNamingMode naming_mode = kDebugNaming,
CpuProfilingLoggingMode logging_mode = kLazyLogging )
explicit

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

◆ CpuProfiler() [2/3]

v8::internal::CpuProfiler::CpuProfiler ( Isolate * isolate,
CpuProfilingNamingMode naming_mode,
CpuProfilingLoggingMode logging_mode,
CpuProfilesCollection * profiles,
Symbolizer * test_symbolizer,
ProfilerEventsProcessor * test_processor,
ProfilerCodeObserver * test_code_observer )

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

Here is the call graph for this function:

◆ ~CpuProfiler()

v8::internal::CpuProfiler::~CpuProfiler ( )

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

Here is the call graph for this function:

◆ CpuProfiler() [3/3]

v8::internal::CpuProfiler::CpuProfiler ( const CpuProfiler & )
delete

Member Function Documentation

◆ AdjustSamplingInterval()

void v8::internal::CpuProfiler::AdjustSamplingInterval ( )
private

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

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

◆ code_entries()

CodeEntryStorage * v8::internal::CpuProfiler::code_entries ( )
inline

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

◆ code_map_for_test()

InstructionStreamMap * v8::internal::CpuProfiler::code_map_for_test ( )
inline

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

◆ CollectSample() [1/2]

void v8::internal::CpuProfiler::CollectSample ( const std::optional< uint64_t > trace_id = std::nullopt)

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

◆ CollectSample() [2/2]

void v8::internal::CpuProfiler::CollectSample ( Isolate * isolate,
std::optional< uint64_t > trace_id = std::nullopt )
static

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

◆ ComputeSamplingInterval()

base::TimeDelta v8::internal::CpuProfiler::ComputeSamplingInterval ( )
private

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

Here is the caller graph for this function:

◆ DeleteAllProfiles()

void v8::internal::CpuProfiler::DeleteAllProfiles ( )

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

Here is the call graph for this function:

◆ DeleteProfile()

void v8::internal::CpuProfiler::DeleteProfile ( CpuProfile * profile)

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

Here is the call graph for this function:

◆ DisableLogging()

void v8::internal::CpuProfiler::DisableLogging ( )
private

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

Here is the caller graph for this function:

◆ EnableLogging()

void v8::internal::CpuProfiler::EnableLogging ( )
private

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

Here is the caller graph for this function:

◆ GetAllProfilersMemorySize()

size_t v8::internal::CpuProfiler::GetAllProfilersMemorySize ( Isolate * isolate)
static

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

◆ GetEstimatedMemoryUsage()

size_t v8::internal::CpuProfiler::GetEstimatedMemoryUsage ( ) const

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

◆ GetProfile()

CpuProfile * v8::internal::CpuProfiler::GetProfile ( int index)

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

◆ GetProfilesCount()

int v8::internal::CpuProfiler::GetProfilesCount ( )

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

◆ is_profiling()

bool v8::internal::CpuProfiler::is_profiling ( ) const
inline

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

◆ isolate()

Isolate * v8::internal::CpuProfiler::isolate ( ) const
inline

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

Here is the caller graph for this function:

◆ operator=()

CpuProfiler & v8::internal::CpuProfiler::operator= ( const CpuProfiler & )
delete

◆ processor()

ProfilerEventsProcessor * v8::internal::CpuProfiler::processor ( ) const
inline

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

◆ profiler_listener_for_test()

ProfilerListener * v8::internal::CpuProfiler::profiler_listener_for_test ( ) const
inline

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

◆ ResetProfiles()

void v8::internal::CpuProfiler::ResetProfiles ( )
private

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

Here is the caller graph for this function:

◆ sampling_interval()

base::TimeDelta v8::internal::CpuProfiler::sampling_interval ( ) const
inline

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

Here is the caller graph for this function:

◆ set_sampling_interval()

void v8::internal::CpuProfiler::set_sampling_interval ( base::TimeDelta value)

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

◆ set_use_precise_sampling()

void v8::internal::CpuProfiler::set_use_precise_sampling ( bool value)

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

◆ StartProcessorIfNotStarted()

void v8::internal::CpuProfiler::StartProcessorIfNotStarted ( )
private

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

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

◆ StartProfiling() [1/3]

CpuProfilingResult v8::internal::CpuProfiler::StartProfiling ( const char * title,
CpuProfilingOptions options = {},
std::unique_ptr< DiscardedSamplesDelegate > delegate = nullptr )

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

Here is the call graph for this function:

◆ StartProfiling() [2/3]

CpuProfilingResult v8::internal::CpuProfiler::StartProfiling ( CpuProfilingOptions options = {},
std::unique_ptr< DiscardedSamplesDelegate > delegate = nullptr )

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

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

◆ StartProfiling() [3/3]

CpuProfilingResult v8::internal::CpuProfiler::StartProfiling ( Tagged< String > title,
CpuProfilingOptions options = {},
std::unique_ptr< DiscardedSamplesDelegate > delegate = nullptr )

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

Here is the call graph for this function:

◆ StopProcessor()

void v8::internal::CpuProfiler::StopProcessor ( )
private

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

Here is the caller graph for this function:

◆ StopProfiling() [1/3]

CpuProfile * v8::internal::CpuProfiler::StopProfiling ( const char * title)

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

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

◆ StopProfiling() [2/3]

CpuProfile * v8::internal::CpuProfiler::StopProfiling ( ProfilerId id)

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

Here is the call graph for this function:

◆ StopProfiling() [3/3]

CpuProfile * v8::internal::CpuProfiler::StopProfiling ( Tagged< String > title)

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

Here is the call graph for this function:

◆ symbolizer()

Symbolizer * v8::internal::CpuProfiler::symbolizer ( ) const
inline

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

Member Data Documentation

◆ base_sampling_interval_

base::TimeDelta v8::internal::CpuProfiler::base_sampling_interval_
private

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

◆ code_entries_

CodeEntryStorage v8::internal::CpuProfiler::code_entries_
private

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

◆ code_observer_

std::unique_ptr<ProfilerCodeObserver> v8::internal::CpuProfiler::code_observer_
private

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

◆ is_profiling_

bool v8::internal::CpuProfiler::is_profiling_
private

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

◆ isolate_

Isolate* const v8::internal::CpuProfiler::isolate_
private

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

◆ logging_mode_

const LoggingMode v8::internal::CpuProfiler::logging_mode_
private

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

◆ naming_mode_

const NamingMode v8::internal::CpuProfiler::naming_mode_
private

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

◆ processor_

std::unique_ptr<ProfilerEventsProcessor> v8::internal::CpuProfiler::processor_
private

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

◆ profiler_listener_

std::unique_ptr<ProfilerListener> v8::internal::CpuProfiler::profiler_listener_
private

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

◆ profiles_

std::unique_ptr<CpuProfilesCollection> v8::internal::CpuProfiler::profiles_
private

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

◆ profiling_scope_

std::unique_ptr<ProfilingScope> v8::internal::CpuProfiler::profiling_scope_
private

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

◆ symbolizer_

std::unique_ptr<Symbolizer> v8::internal::CpuProfiler::symbolizer_
private

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

◆ use_precise_sampling_

bool v8::internal::CpuProfiler::use_precise_sampling_ = true
private

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


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