console.time() & console.timeEnd()

Here's a ⚡️quick tip on how to benchmark your code from within the Google Chrome Console using both console.time() and console.timeEnd().

Setting up console.time()

As with almost all of the Chrome Console APIs, console.time() and console.timeEnd() are both prety straightforward and extremely useful.

If you've ever wondered to yourself if one particular piece of code is executed faster than another, here's a way to get a good idea!

Syntax

console.time([label]); // add an optional label to your timer

console.timeEnd(); // close out the timer

As you can see, the syntax is pretty straight forward. You are able to add labels to the console.time(). This will help to keep your logs more organized in the event that you wanted to run multiple timers within your code.

Example

Let's create a simple array that we will iterate over using both a standard for-loop as well as the Array.forEach() method. From there, we will use console.time() to give us some benchmarks of the performance between the two.

const arr = [1, 2, 3, 4, 5, 6, 7, 8 , 9 , 0];

function countWithForLoop(arr){
    console.time(); // start timer
	var count = 0;
    for (var i in arr) {
		count++;
	}
	console.timeEnd(); // end timer
	return count;
}

function countWithForEach(arr){
	console.time(); // start timer
	count = 0
	arr.forEach(item => {
		count++;
	})
	console.timeEnd(); // end timer
	return count;
}

countWithForLoop(arr); // returns a faster time

countWithForEach(arr); // returns a slower time

Try this the code snippet in your browser console.

The Output

After running a fair amount of trials, it's fair to say that countWithForLoop() will iterate through arr faster than countWithForEach().

It's worth noting that this isn't the most scientific way to benchmark the performance of two pieces of code, but it will certainly give you a pretty solid idea in a matter of seconds.

Stay Tuned 📺

I hope you found this ⚡️quick tip useful! There's a ton of other awesome methods in the Google Chrome Devtools API so stay tuned for more!

If you have any questions or improvements, or if you'd like to see additional examples, feel free to reach out to me anytime at tim@timwheeler.com. If you're enjoying my posts, please subscribe below! 👇