The W3C Navigation Timing specification defines an interface for web applications to access the complete timing information for navigation of a document.

What this basically means, is that you can programmatically get an understanding of how much time the browser has spent on the different tasks required to load a web page.

Due to a project that i am working on, lately i have found the need to constantly inspect this information after loading or refreshing a web page.
Some extensions exist for Chrome to facilitate this, but i have found them either broken or non-functional on the latest Chrome Canary releases.

Bellow is a snippet of code that i quickly hacked and that gives me all the information that i want to know:

var t = performance.timing;  
var start = t.redirectStart === 0 ? t.fetchStart : t.redirectStart;  
var time = String(((t.loadEventEnd - start) / 1000).toPrecision(3)).substring(0, 4); 

console.log('total: ' , t.loadEventEnd - start);  
console.log('redirect: ', t.redirectEnd - t.redirectStart);  
console.log('dns: ', t.domainLookupEnd - t.domainLookupStart);  
console.log('connect: ', t.connectEnd - t.connectStart); console.log('request: ', t.responseStart - t.requestStart); console.log('response: ', t.responseEnd - t.responseStart);  
console.log('dom: ', t.domComplete - t.domLoading);  
console.log('load: ', t.loadEventEnd - t.loadEventStart);  

And this is the minified version that i just copy/paste into my browser console after hitting the refresh button:

var a=performance.timing;console.log("total: ",a.loadEventEnd-(0===a.redirectStart?a.fetchStart:a.redirectStart));console.log("redirect: ",a.redirectEnd-a.redirectStart);console.log("dns: ",a.domainLookupEnd-a.domainLookupStart);console.log("connect: ",a.connectEnd-a.connectStart);console.log("request: ",a.responseStart-a.requestStart);console.log("response: ",a.responseEnd-a.responseStart);console.log("dom: ",a.domComplete-a.domLoading);console.log("load: ",a.loadEventEnd-a.loadEventStart);