perf_hooks: set bootstrap complete in only one place

PR-URL: https://github.com/nodejs/node/pull/21247
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Tiancheng "Timothy" Gu <timothygu99@gmail.com>
This commit is contained in:
James M Snell 2018-06-03 16:30:15 -07:00
parent a703df9785
commit 17e378b51a

View File

@ -174,6 +174,8 @@
} }
} }
perf.markMilestone(NODE_PERFORMANCE_MILESTONE_BOOTSTRAP_COMPLETE);
// There are various modes that Node can run in. The most common two // There are various modes that Node can run in. The most common two
// are running from a script and running the REPL - but there are a few // are running from a script and running the REPL - but there are a few
// others like the debugger or running --eval arguments. Here we decide // others like the debugger or running --eval arguments. Here we decide
@ -186,7 +188,6 @@
// To allow people to extend Node in different ways, this hook allows // To allow people to extend Node in different ways, this hook allows
// one to drop a file lib/_third_party_main.js into the build // one to drop a file lib/_third_party_main.js into the build
// directory which will be executed instead of Node's normal loading. // directory which will be executed instead of Node's normal loading.
perf.markMilestone(NODE_PERFORMANCE_MILESTONE_BOOTSTRAP_COMPLETE);
process.nextTick(function() { process.nextTick(function() {
perf.markMilestone(NODE_PERFORMANCE_MILESTONE_THIRD_PARTY_MAIN_START); perf.markMilestone(NODE_PERFORMANCE_MILESTONE_THIRD_PARTY_MAIN_START);
NativeModule.require('_third_party_main'); NativeModule.require('_third_party_main');
@ -200,13 +201,11 @@
} }
// Start the debugger agent. // Start the debugger agent.
perf.markMilestone(NODE_PERFORMANCE_MILESTONE_BOOTSTRAP_COMPLETE);
process.nextTick(function() { process.nextTick(function() {
NativeModule.require('internal/deps/node-inspect/lib/_inspect').start(); NativeModule.require('internal/deps/node-inspect/lib/_inspect').start();
}); });
} else if (process.profProcess) { } else if (process.profProcess) {
perf.markMilestone(NODE_PERFORMANCE_MILESTONE_BOOTSTRAP_COMPLETE);
NativeModule.require('internal/v8_prof_processor'); NativeModule.require('internal/v8_prof_processor');
} else { } else {
// There is user code to be run. // There is user code to be run.
@ -238,7 +237,6 @@
addBuiltinLibsToObject addBuiltinLibsToObject
} = NativeModule.require('internal/modules/cjs/helpers'); } = NativeModule.require('internal/modules/cjs/helpers');
addBuiltinLibsToObject(global); addBuiltinLibsToObject(global);
perf.markMilestone(NODE_PERFORMANCE_MILESTONE_BOOTSTRAP_COMPLETE);
evalScript('[eval]'); evalScript('[eval]');
} else if (process.argv[1] && process.argv[1] !== '-') { } else if (process.argv[1] && process.argv[1] !== '-') {
perf.markMilestone(NODE_PERFORMANCE_MILESTONE_MODULE_LOAD_START); perf.markMilestone(NODE_PERFORMANCE_MILESTONE_MODULE_LOAD_START);
@ -263,7 +261,6 @@
checkScriptSyntax(source, filename); checkScriptSyntax(source, filename);
process.exit(0); process.exit(0);
} }
perf.markMilestone(NODE_PERFORMANCE_MILESTONE_BOOTSTRAP_COMPLETE);
CJSModule.runMain(); CJSModule.runMain();
} else { } else {
perf.markMilestone(NODE_PERFORMANCE_MILESTONE_MODULE_LOAD_START); perf.markMilestone(NODE_PERFORMANCE_MILESTONE_MODULE_LOAD_START);
@ -294,7 +291,6 @@
if (process._eval != null) { if (process._eval != null) {
// User passed '-e' or '--eval' // User passed '-e' or '--eval'
perf.markMilestone(NODE_PERFORMANCE_MILESTONE_BOOTSTRAP_COMPLETE);
evalScript('[eval]'); evalScript('[eval]');
} }
} else { } else {
@ -311,14 +307,12 @@
checkScriptSyntax(code, '[stdin]'); checkScriptSyntax(code, '[stdin]');
} else { } else {
process._eval = code; process._eval = code;
perf.markMilestone(NODE_PERFORMANCE_MILESTONE_BOOTSTRAP_COMPLETE);
evalScript('[stdin]'); evalScript('[stdin]');
} }
}); });
} }
} }
} }
perf.markMilestone(NODE_PERFORMANCE_MILESTONE_BOOTSTRAP_COMPLETE);
} }
function setupProcessObject() { function setupProcessObject() {