2008-05-15 Kevin McCullough <kmccullough@apple.com>
Reviewed by Tim.
<rdar://problem/5770054> JavaScript profiler (10928)
- Cache some values to save on computing them repetitively. This will be
a big savings when we sort since we won't have to walk the tree for
every comparison!
- We cache these values when we end profiling because otherwise we won't
know which profile to get the totalTime for the whole profile from without
retaining a reference to the head profile or looking up the profile from
the list of all profiles.
- Also it's safe to assume we won't be asked for these values while we
are still profiling since the WebInspector only get's profileNodes from
profiles that are in the allProfiles() list and a profile is only added
to that list after it has finished and these values will no longer
change.
* JavaScriptCore.exp:
* profiler/ProfileNode.cpp:
(KJS::ProfileNode::ProfileNode):
(KJS::ProfileNode::stopProfiling):
(KJS::ProfileNode::printDataInspectorStyle):
(KJS::ProfileNode::printDataSampleStyle):
(KJS::ProfileNode::endAndRecordCall):
* profiler/ProfileNode.h:
(KJS::ProfileNode::totalTime):
(KJS::ProfileNode::selfTime):
(KJS::ProfileNode::totalPercent):
(KJS::ProfileNode::selfPercent):
* profiler/Profiler.cpp:
(KJS::Profiler::stopProfiling):
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@33507 268f45cc-cd09-0410-ab3c-d52691b4dbfc
5 files changed