summaryrefslogtreecommitdiff
path: root/src/mongo/scripting/v8_profiler.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mongo/scripting/v8_profiler.cpp')
-rw-r--r--src/mongo/scripting/v8_profiler.cpp73
1 files changed, 36 insertions, 37 deletions
diff --git a/src/mongo/scripting/v8_profiler.cpp b/src/mongo/scripting/v8_profiler.cpp
index 4089b205005..761cb2bf332 100644
--- a/src/mongo/scripting/v8_profiler.cpp
+++ b/src/mongo/scripting/v8_profiler.cpp
@@ -33,47 +33,46 @@
#include "mongo/util/mongoutils/str.h"
namespace mongo {
- void V8CpuProfiler::start(const StringData name) {
- v8::CpuProfiler::StartProfiling(v8::String::New(name.toString().c_str()));
- }
+void V8CpuProfiler::start(const StringData name) {
+ v8::CpuProfiler::StartProfiling(v8::String::New(name.toString().c_str()));
+}
- void V8CpuProfiler::stop(const StringData name) {
- _cpuProfiles.insert(make_pair(name.toString(),
- v8::CpuProfiler::StopProfiling(v8::String::New(name.toString().c_str(),
- name.size()))));
- }
+void V8CpuProfiler::stop(const StringData name) {
+ _cpuProfiles.insert(make_pair(
+ name.toString(),
+ v8::CpuProfiler::StopProfiling(v8::String::New(name.toString().c_str(), name.size()))));
+}
- void V8CpuProfiler::traverseDepthFirst(const v8::CpuProfileNode* cpuProfileNode,
- BSONArrayBuilder& arrayBuilder) {
- if (cpuProfileNode == NULL)
- return;
- BSONObjBuilder frameObjBuilder;
- frameObjBuilder.append("Function",
- *v8::String::Utf8Value(cpuProfileNode->GetFunctionName()));
- frameObjBuilder.append("Source",
- *v8::String::Utf8Value(cpuProfileNode->GetScriptResourceName()));
- frameObjBuilder.appendNumber("Line", cpuProfileNode->GetLineNumber());
- frameObjBuilder.appendNumber("SelfTime", cpuProfileNode->GetSelfTime());
- frameObjBuilder.appendNumber("TotalTime", cpuProfileNode->GetTotalTime());
- if (cpuProfileNode->GetChildrenCount()) {
- BSONArrayBuilder subArrayBuilder(frameObjBuilder.subarrayStart("Children"));
- for (int i = 0; i < cpuProfileNode->GetChildrenCount(); ++i) {
- traverseDepthFirst(cpuProfileNode->GetChild(i), subArrayBuilder);
- }
- subArrayBuilder.done();
+void V8CpuProfiler::traverseDepthFirst(const v8::CpuProfileNode* cpuProfileNode,
+ BSONArrayBuilder& arrayBuilder) {
+ if (cpuProfileNode == NULL)
+ return;
+ BSONObjBuilder frameObjBuilder;
+ frameObjBuilder.append("Function", *v8::String::Utf8Value(cpuProfileNode->GetFunctionName()));
+ frameObjBuilder.append("Source",
+ *v8::String::Utf8Value(cpuProfileNode->GetScriptResourceName()));
+ frameObjBuilder.appendNumber("Line", cpuProfileNode->GetLineNumber());
+ frameObjBuilder.appendNumber("SelfTime", cpuProfileNode->GetSelfTime());
+ frameObjBuilder.appendNumber("TotalTime", cpuProfileNode->GetTotalTime());
+ if (cpuProfileNode->GetChildrenCount()) {
+ BSONArrayBuilder subArrayBuilder(frameObjBuilder.subarrayStart("Children"));
+ for (int i = 0; i < cpuProfileNode->GetChildrenCount(); ++i) {
+ traverseDepthFirst(cpuProfileNode->GetChild(i), subArrayBuilder);
}
- arrayBuilder << frameObjBuilder.obj();
+ subArrayBuilder.done();
}
+ arrayBuilder << frameObjBuilder.obj();
+}
- const BSONArray V8CpuProfiler::fetch(const StringData name) {
- BSONArrayBuilder arrayBuilder;
- CpuProfileMap::const_iterator iProf = _cpuProfiles.find(name.toString());
- if (iProf == _cpuProfiles.end())
- return arrayBuilder.arr();
- const v8::CpuProfile* cpuProfile = iProf->second;
- if (cpuProfile == NULL)
- return arrayBuilder.arr();
- traverseDepthFirst(cpuProfile->GetTopDownRoot(), arrayBuilder);
+const BSONArray V8CpuProfiler::fetch(const StringData name) {
+ BSONArrayBuilder arrayBuilder;
+ CpuProfileMap::const_iterator iProf = _cpuProfiles.find(name.toString());
+ if (iProf == _cpuProfiles.end())
return arrayBuilder.arr();
- }
+ const v8::CpuProfile* cpuProfile = iProf->second;
+ if (cpuProfile == NULL)
+ return arrayBuilder.arr();
+ traverseDepthFirst(cpuProfile->GetTopDownRoot(), arrayBuilder);
+ return arrayBuilder.arr();
+}
}