Tiempo de carga de la página con JavaScript

Estoy buscando una forma adecuada de probar el tiempo que tarda una página en cargar completamente todos sus recursos. Lo que he hecho hasta ahora es agregar:

window.startTime = (new Date).getTime(); // after the title in my page

Y

window.onload = function () {
    console.log((new Date).getTime() - window.startTime);
}
window.addEventListener('load',function () {
    console.log((new Date).getTime() - window.startTime);   
},false);

Muy abajo en el pie de página. ¿Es esta una buena manera de medir? ¿Podría haber diferencias entre el tiempo de carga y el tiempo de carga percibido? Por lo que veo, los eventos se activan después de que se hayan cargado todos los recursos, incluidas las imágenes. ¿Hay alguna diferencia entre los dos eventos? ¿También puedo usar PageSpeed ​​para probar esto? (Sé que puedo hacerlo en herramientas de desarrollo de Chrome, pero también quiero un script para poder realizar un seguimiento de los datos).

Respuestas a la pregunta(6)

Su respuesta a la pregunta