summaryrefslogtreecommitdiff
path: root/deps/v8/include/v8-profiler.h
diff options
context:
space:
mode:
Diffstat (limited to 'deps/v8/include/v8-profiler.h')
-rw-r--r--deps/v8/include/v8-profiler.h39
1 files changed, 38 insertions, 1 deletions
diff --git a/deps/v8/include/v8-profiler.h b/deps/v8/include/v8-profiler.h
index ada2dbbe5c..672a694e07 100644
--- a/deps/v8/include/v8-profiler.h
+++ b/deps/v8/include/v8-profiler.h
@@ -48,7 +48,7 @@ template class V8_EXPORT std::vector<v8::CpuProfileDeoptInfo>;
namespace v8 {
// TickSample captures the information collected for each sample.
-struct TickSample {
+struct V8_EXPORT TickSample {
// Internal profiling (with --prof + tools/$OS-tick-processor) wants to
// include the runtime function we're calling. Externally exposed tick
// samples don't care.
@@ -129,6 +129,20 @@ class V8_EXPORT CpuProfileNode {
unsigned int hit_count;
};
+ // An annotation hinting at the source of a CpuProfileNode.
+ enum SourceType {
+ // User-supplied script with associated resource information.
+ kScript = 0,
+ // Native scripts and provided builtins.
+ kBuiltin = 1,
+ // Callbacks into native code.
+ kCallback = 2,
+ // VM-internal functions or state.
+ kInternal = 3,
+ // A node that failed to symbolize.
+ kUnresolved = 4,
+ };
+
/** Returns function name (empty string for anonymous functions.) */
Local<String> GetFunctionName() const;
@@ -153,6 +167,12 @@ class V8_EXPORT CpuProfileNode {
const char* GetScriptResourceNameStr() const;
/**
+ * Return true if the script from where the function originates is flagged as
+ * being shared cross-origin.
+ */
+ bool IsScriptSharedCrossOrigin() const;
+
+ /**
* Returns the number, 1-based, of the line where the function originates.
* kNoLineNumberInfo if no line number information is available.
*/
@@ -194,12 +214,20 @@ class V8_EXPORT CpuProfileNode {
/** Returns id of the node. The id is unique within the tree */
unsigned GetNodeId() const;
+ /**
+ * Gets the type of the source which the node was captured from.
+ */
+ SourceType GetSourceType() const;
+
/** Returns child nodes count of the node. */
int GetChildrenCount() const;
/** Retrieves a child node by index. */
const CpuProfileNode* GetChild(int index) const;
+ /** Retrieves the ancestor node, or null if the root. */
+ const CpuProfileNode* GetParent() const;
+
/** Retrieves deopt infos for the node. */
const std::vector<CpuProfileDeoptInfo>& GetDeoptInfos() const;
@@ -302,6 +330,15 @@ class V8_EXPORT CpuProfiler {
void SetSamplingInterval(int us);
/**
+ * Sets whether or not the profiler should prioritize consistency of sample
+ * periodicity on Windows. Disabling this can greatly reduce CPU usage, but
+ * may result in greater variance in sample timings from the platform's
+ * scheduler. Defaults to enabled. This method must be called when there are
+ * no profiles being recorded.
+ */
+ void SetUsePreciseSampling(bool);
+
+ /**
* Starts collecting CPU profile. Title may be an empty string. It
* is allowed to have several profiles being collected at
* once. Attempts to start collecting several profiles with the same