Changeset 33507 in webkit for trunk/JavaScriptCore/profiler/ProfileNode.cpp
- Timestamp:
- May 15, 2008, 7:51:33 PM (17 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/JavaScriptCore/profiler/ProfileNode.cpp
r33470 r33507 39 39 ProfileNode::ProfileNode(const UString& name) 40 40 : m_functionName(name) 41 , m_timeSum(0) 41 , m_totalTime (0.0) 42 , m_selfTime (0.0) 43 , m_totalPercent (0.0) 44 , m_selfPercent (0.0) 42 45 , m_numberOfCalls(0) 43 46 { … … 97 100 for (StackIterator it = m_children.begin(); it != endOfChildren; ++it) 98 101 (*it)->stopProfiling(); 99 }100 102 101 double ProfileNode::selfTime() const 102 { 103 double sumChildrenTime = 0.0; 103 // Calculate Self time and the percentages once we stop profiling. 104 for (StackIterator currentChild = m_children.begin(); currentChild != m_children.end(); ++currentChild) 105 m_selfTime += (*currentChild)->totalTime(); 106 ASSERT(m_selfTime <= m_totalTime); 107 m_selfTime = m_totalTime - m_selfTime; 104 108 105 for (StackIterator currentChild = m_children.begin(); currentChild != m_children.end(); ++currentChild) 106 sumChildrenTime += (*currentChild)->totalTime(); 107 108 ASSERT(sumChildrenTime <= m_timeSum); 109 110 return m_timeSum - sumChildrenTime; 111 } 112 113 double ProfileNode::totalPercent() const 114 { 115 return (m_timeSum / Profiler::profiler()->currentProfile()->totalTime()) * 100.0; 116 } 117 118 double ProfileNode::selfPercent() const 119 { 120 return (selfTime() / Profiler::profiler()->currentProfile()->totalTime()) * 100.0; 109 m_totalPercent = (m_totalTime / Profiler::profiler()->currentProfile()->totalTime()) * 100.0; 110 m_selfPercent = (selfTime() / Profiler::profiler()->currentProfile()->totalTime()) * 100.0; 121 111 } 122 112 … … 128 118 printf(" "); 129 119 130 printf("% .3fms %s\n", m_timeSum, m_functionName.UTF8String().c_str());120 printf("%d SelfTime %.3fms %.3f%% TotalTime %.3fms%.3f%% FunctionName %s\n", m_numberOfCalls, m_selfTime, selfPercent(), m_totalTime, totalPercent(), m_functionName.UTF8String().c_str()); 131 121 } else 132 122 printf("%s\n", m_functionName.UTF8String().c_str()); … … 146 136 // Print function names 147 137 const char* name = m_functionName.UTF8String().c_str(); 148 double sampleCount = m_t imeSum* 1000;138 double sampleCount = m_totalTime * 1000; 149 139 if (indentLevel) { 150 140 for (int i = 0; i < indentLevel; ++i) … … 174 164 } 175 165 176 return m_t imeSum;166 return m_totalTime; 177 167 } 178 168 179 169 void ProfileNode::endAndRecordCall() 180 170 { 181 m_t imeSum+= getCurrentUTCTime() - m_startTime;171 m_totalTime += getCurrentUTCTime() - m_startTime; 182 172 m_startTime = 0.0; 183 173
Note:
See TracChangeset
for help on using the changeset viewer.