mirror of
https://github.com/atom/atom.git
synced 2026-01-14 01:18:01 -05:00
31 lines
936 B
JavaScript
31 lines
936 B
JavaScript
// Public: Measure how long a function takes to run.
|
|
//
|
|
// description - A {String} description that will be logged to the console when
|
|
// the function completes.
|
|
// fn - A {Function} to measure the duration of.
|
|
//
|
|
// Returns the value returned by the given function.
|
|
window.measure = function(description, fn) {
|
|
let start = Date.now();
|
|
let value = fn();
|
|
let result = Date.now() - start;
|
|
console.log(description, result);
|
|
return value;
|
|
};
|
|
|
|
// Public: Create a dev tools profile for a function.
|
|
//
|
|
// description - A {String} description that will be available in the Profiles
|
|
// tab of the dev tools.
|
|
// fn - A {Function} to profile.
|
|
//
|
|
// Returns the value returned by the given function.
|
|
window.profile = function(description, fn) {
|
|
window.measure(description, function() {
|
|
console.profile(description);
|
|
let value = fn();
|
|
console.profileEnd(description);
|
|
return value;
|
|
});
|
|
};
|