Remove implementation of CpuProfileNode methods deprecated in v8 3.20
GetTotalTime, GetSelfTime and GetTotalSamplesCount were deprecated in 3.20 (https://code.google.com/p/v8/source/browse/branches/3.20/include/v8-profiler.h) and can be safely removed. BUG=None R=bmeurer@chromium.org, loislo@chromium.org Review URL: https://codereview.chromium.org/23554002 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16367 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
This commit is contained in:
parent
5857d951dd
commit
dc670f4412
@ -57,21 +57,6 @@ class V8_EXPORT CpuProfileNode {
|
|||||||
*/
|
*/
|
||||||
int GetLineNumber() const;
|
int GetLineNumber() const;
|
||||||
|
|
||||||
/**
|
|
||||||
* Returns total (self + children) execution time of the function,
|
|
||||||
* in milliseconds, estimated by samples count.
|
|
||||||
*/
|
|
||||||
V8_DEPRECATED(double GetTotalTime() const);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Returns self execution time of the function, in milliseconds,
|
|
||||||
* estimated by samples count.
|
|
||||||
*/
|
|
||||||
V8_DEPRECATED(double GetSelfTime() const);
|
|
||||||
|
|
||||||
/** Returns the count of samples where function exists. */
|
|
||||||
V8_DEPRECATED(double GetTotalSamplesCount() const);
|
|
||||||
|
|
||||||
/** DEPRECATED. Please use GetHitCount instead.
|
/** DEPRECATED. Please use GetHitCount instead.
|
||||||
* Returns the count of samples where function was currently executing.
|
* Returns the count of samples where function was currently executing.
|
||||||
*/
|
*/
|
||||||
|
21
src/api.cc
21
src/api.cc
@ -7295,27 +7295,6 @@ int CpuProfileNode::GetLineNumber() const {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
double CpuProfileNode::GetTotalTime() const {
|
|
||||||
i::Isolate* isolate = i::Isolate::Current();
|
|
||||||
IsDeadCheck(isolate, "v8::CpuProfileNode::GetTotalTime");
|
|
||||||
return reinterpret_cast<const i::ProfileNode*>(this)->GetTotalMillis();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
double CpuProfileNode::GetSelfTime() const {
|
|
||||||
i::Isolate* isolate = i::Isolate::Current();
|
|
||||||
IsDeadCheck(isolate, "v8::CpuProfileNode::GetSelfTime");
|
|
||||||
return reinterpret_cast<const i::ProfileNode*>(this)->GetSelfMillis();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
double CpuProfileNode::GetTotalSamplesCount() const {
|
|
||||||
i::Isolate* isolate = i::Isolate::Current();
|
|
||||||
IsDeadCheck(isolate, "v8::CpuProfileNode::GetTotalSamplesCount");
|
|
||||||
return reinterpret_cast<const i::ProfileNode*>(this)->total_ticks();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
double CpuProfileNode::GetSelfSamplesCount() const {
|
double CpuProfileNode::GetSelfSamplesCount() const {
|
||||||
i::Isolate* isolate = i::Isolate::Current();
|
i::Isolate* isolate = i::Isolate::Current();
|
||||||
IsDeadCheck(isolate, "v8::CpuProfileNode::GetSelfSamplesCount");
|
IsDeadCheck(isolate, "v8::CpuProfileNode::GetSelfSamplesCount");
|
||||||
|
@ -73,7 +73,6 @@ bool CodeEntry::is_js_function_tag(Logger::LogEventsAndTags tag) {
|
|||||||
ProfileNode::ProfileNode(ProfileTree* tree, CodeEntry* entry)
|
ProfileNode::ProfileNode(ProfileTree* tree, CodeEntry* entry)
|
||||||
: tree_(tree),
|
: tree_(tree),
|
||||||
entry_(entry),
|
entry_(entry),
|
||||||
total_ticks_(0),
|
|
||||||
self_ticks_(0),
|
self_ticks_(0),
|
||||||
children_(CodeEntriesMatch),
|
children_(CodeEntriesMatch),
|
||||||
id_(tree->next_node_id()) {
|
id_(tree->next_node_id()) {
|
||||||
|
@ -209,19 +209,9 @@ ProfileNode* ProfileNode::FindOrAddChild(CodeEntry* entry) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
double ProfileNode::GetSelfMillis() const {
|
|
||||||
return tree_->TicksToMillis(self_ticks_);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
double ProfileNode::GetTotalMillis() const {
|
|
||||||
return tree_->TicksToMillis(total_ticks_);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
void ProfileNode::Print(int indent) {
|
void ProfileNode::Print(int indent) {
|
||||||
OS::Print("%5u %5u %*c %s%s %d #%d",
|
OS::Print("%5u %*c %s%s %d #%d",
|
||||||
total_ticks_, self_ticks_,
|
self_ticks_,
|
||||||
indent, ' ',
|
indent, ' ',
|
||||||
entry_->name_prefix(),
|
entry_->name_prefix(),
|
||||||
entry_->name(),
|
entry_->name(),
|
||||||
@ -298,11 +288,6 @@ struct NodesPair {
|
|||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
void ProfileTree::SetTickRatePerMs(double ticks_per_ms) {
|
|
||||||
ms_to_ticks_scale_ = ticks_per_ms > 0 ? 1.0 / ticks_per_ms : 1.0;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
class Position {
|
class Position {
|
||||||
public:
|
public:
|
||||||
explicit Position(ProfileNode* node)
|
explicit Position(ProfileNode* node)
|
||||||
@ -345,33 +330,6 @@ void ProfileTree::TraverseDepthFirst(Callback* callback) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
class CalculateTotalTicksCallback {
|
|
||||||
public:
|
|
||||||
void BeforeTraversingChild(ProfileNode*, ProfileNode*) { }
|
|
||||||
|
|
||||||
void AfterAllChildrenTraversed(ProfileNode* node) {
|
|
||||||
node->IncreaseTotalTicks(node->self_ticks());
|
|
||||||
}
|
|
||||||
|
|
||||||
void AfterChildTraversed(ProfileNode* parent, ProfileNode* child) {
|
|
||||||
parent->IncreaseTotalTicks(child->total_ticks());
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
void ProfileTree::CalculateTotalTicks() {
|
|
||||||
CalculateTotalTicksCallback cb;
|
|
||||||
TraverseDepthFirst(&cb);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
void ProfileTree::ShortPrint() {
|
|
||||||
OS::Print("root: %u %u %.2fms %.2fms\n",
|
|
||||||
root_->total_ticks(), root_->self_ticks(),
|
|
||||||
root_->GetTotalMillis(), root_->GetSelfMillis());
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
CpuProfile::CpuProfile(const char* title, unsigned uid, bool record_samples)
|
CpuProfile::CpuProfile(const char* title, unsigned uid, bool record_samples)
|
||||||
: title_(title),
|
: title_(title),
|
||||||
uid_(uid),
|
uid_(uid),
|
||||||
@ -389,19 +347,6 @@ void CpuProfile::AddPath(const Vector<CodeEntry*>& path) {
|
|||||||
|
|
||||||
void CpuProfile::CalculateTotalTicksAndSamplingRate() {
|
void CpuProfile::CalculateTotalTicksAndSamplingRate() {
|
||||||
end_time_us_ = OS::Ticks();
|
end_time_us_ = OS::Ticks();
|
||||||
top_down_.CalculateTotalTicks();
|
|
||||||
|
|
||||||
double duration_ms = (end_time_us_ - start_time_us_) / 1000.;
|
|
||||||
if (duration_ms < 1) duration_ms = 1;
|
|
||||||
unsigned ticks = top_down_.root()->total_ticks();
|
|
||||||
double rate = ticks / duration_ms;
|
|
||||||
top_down_.SetTickRatePerMs(rate);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
void CpuProfile::ShortPrint() {
|
|
||||||
OS::Print("top down ");
|
|
||||||
top_down_.ShortPrint();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -131,14 +131,10 @@ class ProfileNode {
|
|||||||
ProfileNode* FindOrAddChild(CodeEntry* entry);
|
ProfileNode* FindOrAddChild(CodeEntry* entry);
|
||||||
INLINE(void IncrementSelfTicks()) { ++self_ticks_; }
|
INLINE(void IncrementSelfTicks()) { ++self_ticks_; }
|
||||||
INLINE(void IncreaseSelfTicks(unsigned amount)) { self_ticks_ += amount; }
|
INLINE(void IncreaseSelfTicks(unsigned amount)) { self_ticks_ += amount; }
|
||||||
INLINE(void IncreaseTotalTicks(unsigned amount)) { total_ticks_ += amount; }
|
|
||||||
|
|
||||||
INLINE(CodeEntry* entry() const) { return entry_; }
|
INLINE(CodeEntry* entry() const) { return entry_; }
|
||||||
INLINE(unsigned self_ticks() const) { return self_ticks_; }
|
INLINE(unsigned self_ticks() const) { return self_ticks_; }
|
||||||
INLINE(unsigned total_ticks() const) { return total_ticks_; }
|
|
||||||
INLINE(const List<ProfileNode*>* children() const) { return &children_list_; }
|
INLINE(const List<ProfileNode*>* children() const) { return &children_list_; }
|
||||||
double GetSelfMillis() const;
|
|
||||||
double GetTotalMillis() const;
|
|
||||||
unsigned id() const { return id_; }
|
unsigned id() const { return id_; }
|
||||||
|
|
||||||
void Print(int indent);
|
void Print(int indent);
|
||||||
@ -155,7 +151,6 @@ class ProfileNode {
|
|||||||
|
|
||||||
ProfileTree* tree_;
|
ProfileTree* tree_;
|
||||||
CodeEntry* entry_;
|
CodeEntry* entry_;
|
||||||
unsigned total_ticks_;
|
|
||||||
unsigned self_ticks_;
|
unsigned self_ticks_;
|
||||||
// Mapping from CodeEntry* to ProfileNode*
|
// Mapping from CodeEntry* to ProfileNode*
|
||||||
HashMap children_;
|
HashMap children_;
|
||||||
@ -173,17 +168,9 @@ class ProfileTree {
|
|||||||
|
|
||||||
ProfileNode* AddPathFromEnd(const Vector<CodeEntry*>& path);
|
ProfileNode* AddPathFromEnd(const Vector<CodeEntry*>& path);
|
||||||
void AddPathFromStart(const Vector<CodeEntry*>& path);
|
void AddPathFromStart(const Vector<CodeEntry*>& path);
|
||||||
void CalculateTotalTicks();
|
|
||||||
|
|
||||||
double TicksToMillis(unsigned ticks) const {
|
|
||||||
return ticks * ms_to_ticks_scale_;
|
|
||||||
}
|
|
||||||
ProfileNode* root() const { return root_; }
|
ProfileNode* root() const { return root_; }
|
||||||
void SetTickRatePerMs(double ticks_per_ms);
|
|
||||||
|
|
||||||
unsigned next_node_id() { return next_node_id_++; }
|
unsigned next_node_id() { return next_node_id_++; }
|
||||||
|
|
||||||
void ShortPrint();
|
|
||||||
void Print() {
|
void Print() {
|
||||||
root_->Print(0);
|
root_->Print(0);
|
||||||
}
|
}
|
||||||
@ -195,7 +182,6 @@ class ProfileTree {
|
|||||||
CodeEntry root_entry_;
|
CodeEntry root_entry_;
|
||||||
unsigned next_node_id_;
|
unsigned next_node_id_;
|
||||||
ProfileNode* root_;
|
ProfileNode* root_;
|
||||||
double ms_to_ticks_scale_;
|
|
||||||
|
|
||||||
DISALLOW_COPY_AND_ASSIGN(ProfileTree);
|
DISALLOW_COPY_AND_ASSIGN(ProfileTree);
|
||||||
};
|
};
|
||||||
@ -221,7 +207,6 @@ class CpuProfile {
|
|||||||
|
|
||||||
void UpdateTicksScale();
|
void UpdateTicksScale();
|
||||||
|
|
||||||
void ShortPrint();
|
|
||||||
void Print();
|
void Print();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
@ -132,14 +132,12 @@ TEST(ProfileTreeAddPathFromStart) {
|
|||||||
CHECK_EQ(NULL, helper.Walk(&entry3));
|
CHECK_EQ(NULL, helper.Walk(&entry3));
|
||||||
ProfileNode* node1 = helper.Walk(&entry1);
|
ProfileNode* node1 = helper.Walk(&entry1);
|
||||||
CHECK_NE(NULL, node1);
|
CHECK_NE(NULL, node1);
|
||||||
CHECK_EQ(0, node1->total_ticks());
|
|
||||||
CHECK_EQ(0, node1->self_ticks());
|
CHECK_EQ(0, node1->self_ticks());
|
||||||
CHECK_EQ(NULL, helper.Walk(&entry1, &entry1));
|
CHECK_EQ(NULL, helper.Walk(&entry1, &entry1));
|
||||||
CHECK_EQ(NULL, helper.Walk(&entry1, &entry3));
|
CHECK_EQ(NULL, helper.Walk(&entry1, &entry3));
|
||||||
ProfileNode* node2 = helper.Walk(&entry1, &entry2);
|
ProfileNode* node2 = helper.Walk(&entry1, &entry2);
|
||||||
CHECK_NE(NULL, node2);
|
CHECK_NE(NULL, node2);
|
||||||
CHECK_NE(node1, node2);
|
CHECK_NE(node1, node2);
|
||||||
CHECK_EQ(0, node2->total_ticks());
|
|
||||||
CHECK_EQ(0, node2->self_ticks());
|
CHECK_EQ(0, node2->self_ticks());
|
||||||
CHECK_EQ(NULL, helper.Walk(&entry1, &entry2, &entry1));
|
CHECK_EQ(NULL, helper.Walk(&entry1, &entry2, &entry1));
|
||||||
CHECK_EQ(NULL, helper.Walk(&entry1, &entry2, &entry2));
|
CHECK_EQ(NULL, helper.Walk(&entry1, &entry2, &entry2));
|
||||||
@ -147,18 +145,14 @@ TEST(ProfileTreeAddPathFromStart) {
|
|||||||
CHECK_NE(NULL, node3);
|
CHECK_NE(NULL, node3);
|
||||||
CHECK_NE(node1, node3);
|
CHECK_NE(node1, node3);
|
||||||
CHECK_NE(node2, node3);
|
CHECK_NE(node2, node3);
|
||||||
CHECK_EQ(0, node3->total_ticks());
|
|
||||||
CHECK_EQ(1, node3->self_ticks());
|
CHECK_EQ(1, node3->self_ticks());
|
||||||
|
|
||||||
tree.AddPathFromStart(path_vec);
|
tree.AddPathFromStart(path_vec);
|
||||||
CHECK_EQ(node1, helper.Walk(&entry1));
|
CHECK_EQ(node1, helper.Walk(&entry1));
|
||||||
CHECK_EQ(node2, helper.Walk(&entry1, &entry2));
|
CHECK_EQ(node2, helper.Walk(&entry1, &entry2));
|
||||||
CHECK_EQ(node3, helper.Walk(&entry1, &entry2, &entry3));
|
CHECK_EQ(node3, helper.Walk(&entry1, &entry2, &entry3));
|
||||||
CHECK_EQ(0, node1->total_ticks());
|
|
||||||
CHECK_EQ(0, node1->self_ticks());
|
CHECK_EQ(0, node1->self_ticks());
|
||||||
CHECK_EQ(0, node2->total_ticks());
|
|
||||||
CHECK_EQ(0, node2->self_ticks());
|
CHECK_EQ(0, node2->self_ticks());
|
||||||
CHECK_EQ(0, node3->total_ticks());
|
|
||||||
CHECK_EQ(2, node3->self_ticks());
|
CHECK_EQ(2, node3->self_ticks());
|
||||||
|
|
||||||
CodeEntry* path2[] = {&entry1, &entry2, &entry2};
|
CodeEntry* path2[] = {&entry1, &entry2, &entry2};
|
||||||
@ -172,12 +166,10 @@ TEST(ProfileTreeAddPathFromStart) {
|
|||||||
CHECK_EQ(node2, helper.Walk(&entry1, &entry2));
|
CHECK_EQ(node2, helper.Walk(&entry1, &entry2));
|
||||||
CHECK_EQ(NULL, helper.Walk(&entry1, &entry2, &entry1));
|
CHECK_EQ(NULL, helper.Walk(&entry1, &entry2, &entry1));
|
||||||
CHECK_EQ(node3, helper.Walk(&entry1, &entry2, &entry3));
|
CHECK_EQ(node3, helper.Walk(&entry1, &entry2, &entry3));
|
||||||
CHECK_EQ(0, node3->total_ticks());
|
|
||||||
CHECK_EQ(2, node3->self_ticks());
|
CHECK_EQ(2, node3->self_ticks());
|
||||||
ProfileNode* node4 = helper.Walk(&entry1, &entry2, &entry2);
|
ProfileNode* node4 = helper.Walk(&entry1, &entry2, &entry2);
|
||||||
CHECK_NE(NULL, node4);
|
CHECK_NE(NULL, node4);
|
||||||
CHECK_NE(node3, node4);
|
CHECK_NE(node3, node4);
|
||||||
CHECK_EQ(0, node4->total_ticks());
|
|
||||||
CHECK_EQ(1, node4->self_ticks());
|
CHECK_EQ(1, node4->self_ticks());
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -199,14 +191,12 @@ TEST(ProfileTreeAddPathFromEnd) {
|
|||||||
CHECK_EQ(NULL, helper.Walk(&entry3));
|
CHECK_EQ(NULL, helper.Walk(&entry3));
|
||||||
ProfileNode* node1 = helper.Walk(&entry1);
|
ProfileNode* node1 = helper.Walk(&entry1);
|
||||||
CHECK_NE(NULL, node1);
|
CHECK_NE(NULL, node1);
|
||||||
CHECK_EQ(0, node1->total_ticks());
|
|
||||||
CHECK_EQ(0, node1->self_ticks());
|
CHECK_EQ(0, node1->self_ticks());
|
||||||
CHECK_EQ(NULL, helper.Walk(&entry1, &entry1));
|
CHECK_EQ(NULL, helper.Walk(&entry1, &entry1));
|
||||||
CHECK_EQ(NULL, helper.Walk(&entry1, &entry3));
|
CHECK_EQ(NULL, helper.Walk(&entry1, &entry3));
|
||||||
ProfileNode* node2 = helper.Walk(&entry1, &entry2);
|
ProfileNode* node2 = helper.Walk(&entry1, &entry2);
|
||||||
CHECK_NE(NULL, node2);
|
CHECK_NE(NULL, node2);
|
||||||
CHECK_NE(node1, node2);
|
CHECK_NE(node1, node2);
|
||||||
CHECK_EQ(0, node2->total_ticks());
|
|
||||||
CHECK_EQ(0, node2->self_ticks());
|
CHECK_EQ(0, node2->self_ticks());
|
||||||
CHECK_EQ(NULL, helper.Walk(&entry1, &entry2, &entry1));
|
CHECK_EQ(NULL, helper.Walk(&entry1, &entry2, &entry1));
|
||||||
CHECK_EQ(NULL, helper.Walk(&entry1, &entry2, &entry2));
|
CHECK_EQ(NULL, helper.Walk(&entry1, &entry2, &entry2));
|
||||||
@ -214,18 +204,14 @@ TEST(ProfileTreeAddPathFromEnd) {
|
|||||||
CHECK_NE(NULL, node3);
|
CHECK_NE(NULL, node3);
|
||||||
CHECK_NE(node1, node3);
|
CHECK_NE(node1, node3);
|
||||||
CHECK_NE(node2, node3);
|
CHECK_NE(node2, node3);
|
||||||
CHECK_EQ(0, node3->total_ticks());
|
|
||||||
CHECK_EQ(1, node3->self_ticks());
|
CHECK_EQ(1, node3->self_ticks());
|
||||||
|
|
||||||
tree.AddPathFromEnd(path_vec);
|
tree.AddPathFromEnd(path_vec);
|
||||||
CHECK_EQ(node1, helper.Walk(&entry1));
|
CHECK_EQ(node1, helper.Walk(&entry1));
|
||||||
CHECK_EQ(node2, helper.Walk(&entry1, &entry2));
|
CHECK_EQ(node2, helper.Walk(&entry1, &entry2));
|
||||||
CHECK_EQ(node3, helper.Walk(&entry1, &entry2, &entry3));
|
CHECK_EQ(node3, helper.Walk(&entry1, &entry2, &entry3));
|
||||||
CHECK_EQ(0, node1->total_ticks());
|
|
||||||
CHECK_EQ(0, node1->self_ticks());
|
CHECK_EQ(0, node1->self_ticks());
|
||||||
CHECK_EQ(0, node2->total_ticks());
|
|
||||||
CHECK_EQ(0, node2->self_ticks());
|
CHECK_EQ(0, node2->self_ticks());
|
||||||
CHECK_EQ(0, node3->total_ticks());
|
|
||||||
CHECK_EQ(2, node3->self_ticks());
|
CHECK_EQ(2, node3->self_ticks());
|
||||||
|
|
||||||
CodeEntry* path2[] = {&entry2, &entry2, &entry1};
|
CodeEntry* path2[] = {&entry2, &entry2, &entry1};
|
||||||
@ -239,28 +225,18 @@ TEST(ProfileTreeAddPathFromEnd) {
|
|||||||
CHECK_EQ(node2, helper.Walk(&entry1, &entry2));
|
CHECK_EQ(node2, helper.Walk(&entry1, &entry2));
|
||||||
CHECK_EQ(NULL, helper.Walk(&entry1, &entry2, &entry1));
|
CHECK_EQ(NULL, helper.Walk(&entry1, &entry2, &entry1));
|
||||||
CHECK_EQ(node3, helper.Walk(&entry1, &entry2, &entry3));
|
CHECK_EQ(node3, helper.Walk(&entry1, &entry2, &entry3));
|
||||||
CHECK_EQ(0, node3->total_ticks());
|
|
||||||
CHECK_EQ(2, node3->self_ticks());
|
CHECK_EQ(2, node3->self_ticks());
|
||||||
ProfileNode* node4 = helper.Walk(&entry1, &entry2, &entry2);
|
ProfileNode* node4 = helper.Walk(&entry1, &entry2, &entry2);
|
||||||
CHECK_NE(NULL, node4);
|
CHECK_NE(NULL, node4);
|
||||||
CHECK_NE(node3, node4);
|
CHECK_NE(node3, node4);
|
||||||
CHECK_EQ(0, node4->total_ticks());
|
|
||||||
CHECK_EQ(1, node4->self_ticks());
|
CHECK_EQ(1, node4->self_ticks());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
TEST(ProfileTreeCalculateTotalTicks) {
|
TEST(ProfileTreeCalculateTotalTicks) {
|
||||||
ProfileTree empty_tree;
|
ProfileTree empty_tree;
|
||||||
CHECK_EQ(0, empty_tree.root()->total_ticks());
|
|
||||||
CHECK_EQ(0, empty_tree.root()->self_ticks());
|
|
||||||
empty_tree.CalculateTotalTicks();
|
|
||||||
CHECK_EQ(0, empty_tree.root()->total_ticks());
|
|
||||||
CHECK_EQ(0, empty_tree.root()->self_ticks());
|
CHECK_EQ(0, empty_tree.root()->self_ticks());
|
||||||
empty_tree.root()->IncrementSelfTicks();
|
empty_tree.root()->IncrementSelfTicks();
|
||||||
CHECK_EQ(0, empty_tree.root()->total_ticks());
|
|
||||||
CHECK_EQ(1, empty_tree.root()->self_ticks());
|
|
||||||
empty_tree.CalculateTotalTicks();
|
|
||||||
CHECK_EQ(1, empty_tree.root()->total_ticks());
|
|
||||||
CHECK_EQ(1, empty_tree.root()->self_ticks());
|
CHECK_EQ(1, empty_tree.root()->self_ticks());
|
||||||
|
|
||||||
CodeEntry entry1(i::Logger::FUNCTION_TAG, "aaa");
|
CodeEntry entry1(i::Logger::FUNCTION_TAG, "aaa");
|
||||||
@ -271,17 +247,11 @@ TEST(ProfileTreeCalculateTotalTicks) {
|
|||||||
ProfileTree single_child_tree;
|
ProfileTree single_child_tree;
|
||||||
single_child_tree.AddPathFromStart(e1_path_vec);
|
single_child_tree.AddPathFromStart(e1_path_vec);
|
||||||
single_child_tree.root()->IncrementSelfTicks();
|
single_child_tree.root()->IncrementSelfTicks();
|
||||||
CHECK_EQ(0, single_child_tree.root()->total_ticks());
|
|
||||||
CHECK_EQ(1, single_child_tree.root()->self_ticks());
|
CHECK_EQ(1, single_child_tree.root()->self_ticks());
|
||||||
ProfileTreeTestHelper single_child_helper(&single_child_tree);
|
ProfileTreeTestHelper single_child_helper(&single_child_tree);
|
||||||
ProfileNode* node1 = single_child_helper.Walk(&entry1);
|
ProfileNode* node1 = single_child_helper.Walk(&entry1);
|
||||||
CHECK_NE(NULL, node1);
|
CHECK_NE(NULL, node1);
|
||||||
CHECK_EQ(0, node1->total_ticks());
|
|
||||||
CHECK_EQ(1, node1->self_ticks());
|
|
||||||
single_child_tree.CalculateTotalTicks();
|
|
||||||
CHECK_EQ(2, single_child_tree.root()->total_ticks());
|
|
||||||
CHECK_EQ(1, single_child_tree.root()->self_ticks());
|
CHECK_EQ(1, single_child_tree.root()->self_ticks());
|
||||||
CHECK_EQ(1, node1->total_ticks());
|
|
||||||
CHECK_EQ(1, node1->self_ticks());
|
CHECK_EQ(1, node1->self_ticks());
|
||||||
|
|
||||||
CodeEntry entry2(i::Logger::FUNCTION_TAG, "bbb");
|
CodeEntry entry2(i::Logger::FUNCTION_TAG, "bbb");
|
||||||
@ -297,24 +267,16 @@ TEST(ProfileTreeCalculateTotalTicks) {
|
|||||||
flat_tree.AddPathFromStart(e1_e2_path_vec);
|
flat_tree.AddPathFromStart(e1_e2_path_vec);
|
||||||
flat_tree.AddPathFromStart(e1_e2_path_vec);
|
flat_tree.AddPathFromStart(e1_e2_path_vec);
|
||||||
// Results in {root,0,0} -> {entry1,0,2} -> {entry2,0,3}
|
// Results in {root,0,0} -> {entry1,0,2} -> {entry2,0,3}
|
||||||
CHECK_EQ(0, flat_tree.root()->total_ticks());
|
|
||||||
CHECK_EQ(0, flat_tree.root()->self_ticks());
|
CHECK_EQ(0, flat_tree.root()->self_ticks());
|
||||||
node1 = flat_helper.Walk(&entry1);
|
node1 = flat_helper.Walk(&entry1);
|
||||||
CHECK_NE(NULL, node1);
|
CHECK_NE(NULL, node1);
|
||||||
CHECK_EQ(0, node1->total_ticks());
|
|
||||||
CHECK_EQ(2, node1->self_ticks());
|
CHECK_EQ(2, node1->self_ticks());
|
||||||
ProfileNode* node2 = flat_helper.Walk(&entry1, &entry2);
|
ProfileNode* node2 = flat_helper.Walk(&entry1, &entry2);
|
||||||
CHECK_NE(NULL, node2);
|
CHECK_NE(NULL, node2);
|
||||||
CHECK_EQ(0, node2->total_ticks());
|
|
||||||
CHECK_EQ(3, node2->self_ticks());
|
CHECK_EQ(3, node2->self_ticks());
|
||||||
flat_tree.CalculateTotalTicks();
|
|
||||||
// Must calculate {root,5,0} -> {entry1,5,2} -> {entry2,3,3}
|
// Must calculate {root,5,0} -> {entry1,5,2} -> {entry2,3,3}
|
||||||
CHECK_EQ(5, flat_tree.root()->total_ticks());
|
|
||||||
CHECK_EQ(0, flat_tree.root()->self_ticks());
|
CHECK_EQ(0, flat_tree.root()->self_ticks());
|
||||||
CHECK_EQ(5, node1->total_ticks());
|
|
||||||
CHECK_EQ(2, node1->self_ticks());
|
CHECK_EQ(2, node1->self_ticks());
|
||||||
CHECK_EQ(3, node2->total_ticks());
|
|
||||||
CHECK_EQ(3, node2->self_ticks());
|
|
||||||
|
|
||||||
CodeEntry* e2_path[] = {&entry2};
|
CodeEntry* e2_path[] = {&entry2};
|
||||||
Vector<CodeEntry*> e2_path_vec(
|
Vector<CodeEntry*> e2_path_vec(
|
||||||
@ -339,37 +301,26 @@ TEST(ProfileTreeCalculateTotalTicks) {
|
|||||||
// Results in -> {entry1,0,2} -> {entry2,0,1}
|
// Results in -> {entry1,0,2} -> {entry2,0,1}
|
||||||
// {root,0,0} -> {entry2,0,3}
|
// {root,0,0} -> {entry2,0,3}
|
||||||
// -> {entry3,0,4}
|
// -> {entry3,0,4}
|
||||||
CHECK_EQ(0, wide_tree.root()->total_ticks());
|
|
||||||
CHECK_EQ(0, wide_tree.root()->self_ticks());
|
CHECK_EQ(0, wide_tree.root()->self_ticks());
|
||||||
node1 = wide_helper.Walk(&entry1);
|
node1 = wide_helper.Walk(&entry1);
|
||||||
CHECK_NE(NULL, node1);
|
CHECK_NE(NULL, node1);
|
||||||
CHECK_EQ(0, node1->total_ticks());
|
|
||||||
CHECK_EQ(2, node1->self_ticks());
|
CHECK_EQ(2, node1->self_ticks());
|
||||||
ProfileNode* node1_2 = wide_helper.Walk(&entry1, &entry2);
|
ProfileNode* node1_2 = wide_helper.Walk(&entry1, &entry2);
|
||||||
CHECK_NE(NULL, node1_2);
|
CHECK_NE(NULL, node1_2);
|
||||||
CHECK_EQ(0, node1_2->total_ticks());
|
|
||||||
CHECK_EQ(1, node1_2->self_ticks());
|
CHECK_EQ(1, node1_2->self_ticks());
|
||||||
node2 = wide_helper.Walk(&entry2);
|
node2 = wide_helper.Walk(&entry2);
|
||||||
CHECK_NE(NULL, node2);
|
CHECK_NE(NULL, node2);
|
||||||
CHECK_EQ(0, node2->total_ticks());
|
|
||||||
CHECK_EQ(3, node2->self_ticks());
|
CHECK_EQ(3, node2->self_ticks());
|
||||||
ProfileNode* node3 = wide_helper.Walk(&entry3);
|
ProfileNode* node3 = wide_helper.Walk(&entry3);
|
||||||
CHECK_NE(NULL, node3);
|
CHECK_NE(NULL, node3);
|
||||||
CHECK_EQ(0, node3->total_ticks());
|
|
||||||
CHECK_EQ(4, node3->self_ticks());
|
CHECK_EQ(4, node3->self_ticks());
|
||||||
wide_tree.CalculateTotalTicks();
|
|
||||||
// Calculates -> {entry1,3,2} -> {entry2,1,1}
|
// Calculates -> {entry1,3,2} -> {entry2,1,1}
|
||||||
// {root,10,0} -> {entry2,3,3}
|
// {root,10,0} -> {entry2,3,3}
|
||||||
// -> {entry3,4,4}
|
// -> {entry3,4,4}
|
||||||
CHECK_EQ(10, wide_tree.root()->total_ticks());
|
|
||||||
CHECK_EQ(0, wide_tree.root()->self_ticks());
|
CHECK_EQ(0, wide_tree.root()->self_ticks());
|
||||||
CHECK_EQ(3, node1->total_ticks());
|
|
||||||
CHECK_EQ(2, node1->self_ticks());
|
CHECK_EQ(2, node1->self_ticks());
|
||||||
CHECK_EQ(1, node1_2->total_ticks());
|
|
||||||
CHECK_EQ(1, node1_2->self_ticks());
|
CHECK_EQ(1, node1_2->self_ticks());
|
||||||
CHECK_EQ(3, node2->total_ticks());
|
|
||||||
CHECK_EQ(3, node2->self_ticks());
|
CHECK_EQ(3, node2->self_ticks());
|
||||||
CHECK_EQ(4, node3->total_ticks());
|
|
||||||
CHECK_EQ(4, node3->self_ticks());
|
CHECK_EQ(4, node3->self_ticks());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user