28 #ifndef V8_V8_PROFILER_H_
29 #define V8_V8_PROFILER_H_
36 #if defined(BUILDING_V8_SHARED) && defined(USING_V8_SHARED)
37 #error both BUILDING_V8_SHARED and USING_V8_SHARED are set - please check the\
38 build configuration to ensure that at most one of these is set
41 #ifdef BUILDING_V8_SHARED
42 #define V8EXPORT __declspec(dllexport)
44 #define V8EXPORT __declspec(dllimport)
53 #if defined(__GNUC__) && ((__GNUC__ >= 4) || \
54 (__GNUC__ == 3 && __GNUC_MINOR__ >= 3)) && defined(V8_SHARED)
55 #define V8EXPORT __attribute__ ((visibility("default")))
85 int GetLineNumber()
const;
91 double GetTotalTime()
const;
97 double GetSelfTime()
const;
100 double GetTotalSamplesCount()
const;
103 double GetSelfSamplesCount()
const;
106 unsigned GetCallUid()
const;
109 int GetChildrenCount()
const;
126 unsigned GetUid()
const;
167 static int GetProfilesCount();
202 static void DeleteAllProfiles();
216 kContextVariable = 0,
230 Type GetType()
const;
266 Type GetType()
const;
282 int GetSelfSize()
const;
285 int GetChildrenCount()
const;
311 Type GetType()
const;
314 unsigned GetUid()
const;
326 int GetNodesCount()
const;
367 void Serialize(
OutputStream* stream, SerializationFormat format)
const;
371 class RetainedObjectInfo;
388 static int GetSnapshotsCount();
423 static void StartHeapObjectsTracking();
444 static void StopHeapObjectsTracking();
450 static void DeleteAllSnapshots();
453 static void DefineWrapperClass(
455 WrapperInfoCallback callback);
462 static const uint16_t kPersistentHandleNoClassId = 0;
465 static int GetPersistentHandleCount();
468 static size_t GetMemorySizeUsedByProfiler();
499 virtual void Dispose() = 0;
508 virtual intptr_t GetHash() = 0;
514 virtual const char* GetLabel() = 0;
552 : index(index), count(count), size(size) { }
565 #endif // V8_V8_PROFILER_H_
static const int kNoLineNumberInfo
HeapStatsUpdate(uint32_t index, uint32_t count, uint32_t size)
virtual ~RetainedObjectInfo()
uint32_t SnapshotObjectId
virtual intptr_t GetElementCount()
activate correct semantics for inheriting readonliness enable harmony semantics for typeof enable harmony enable harmony proxies enable all harmony harmony_scoping harmony_proxies harmony_scoping tracks arrays with only smi values automatically unbox arrays of doubles use crankshaft use hydrogen range analysis use hydrogen global value numbering use function inlining maximum number of AST nodes considered for a single inlining loop invariant code motion print statistics for hydrogen trace generated IR for specified phases trace register allocator trace range analysis trace representation types environment for every instruction put a break point before deoptimizing polymorphic inlining perform array bounds checks elimination use dead code elimination trace on stack replacement optimize closures cache optimized code for closures functions with arguments object loop weight for representation inference allow uint32 values on optimize frames if they are used only in safe operations track parallel recompilation enable all profiler experiments number of stack frames inspected by the profiler call recompile stub directly when self optimizing trigger profiler ticks based on counting instead of timing weight back edges by jump distance for interrupt triggering percentage of ICs that must have type info to allow optimization watch_ic_patching retry_self_opt interrupt_at_exit extra verbose compilation tracing generate extra emit comments in code disassembly enable use of SSE3 instructions if available enable use of CMOV instruction if available enable use of SAHF instruction if enable use of VFP3 instructions if available this implies enabling ARMv7 and VFP2 enable use of VFP2 instructions if available enable use of SDIV and UDIV instructions if enable loading bit constant by means of movw movt instruction enable unaligned accesses for enable use of MIPS FPU instructions if NULL
virtual intptr_t GetSizeInBytes()
virtual const char * GetGroupLabel()