Saludos,
- Siempre se puede utilizar las herramientas de desarrollador del navegador web, por ejemplo en Chrome está el apartado Performance que muestra los tiempos de carga de todos los elementos de la página web.

- Se puede ver bien claro el tiempo de carga del DOM (evento DOMContentLoaded del document) en azul, y el Window Onload (evento load de window) en rojo. Onload se espera a que la imagen se termine de cargar.
- jQuery por defecto usa DOMContentLoad de document y como fallback el load de window, luego quita el evento cuando alguno de estos se ejecuta, es decir, el load de window es un "seguro" que se descarta si DOMContentLoad Funcionó:
// The ready event handler and self cleanup method
function completed() {
document.removeEventListener( "DOMContentLoaded", completed );
window.removeEventListener( "load", completed );
jQuery.ready();
}
// Catch cases where $(document).ready() is called
// after the browser event has already occurred.
// Support: IE <=9 - 10 only
// Older IE sometimes signals "interactive" too soon
if ( document.readyState === "complete" ||
( document.readyState !== "loading" && !document.documentElement.doScroll ) ) {
// Handle it asynchronously to allow scripts the opportunity to delay ready
window.setTimeout( jQuery.ready );
} else {
// Use the handy event callback
document.addEventListener( "DOMContentLoaded", completed );
// A fallback to window.onload, that will always work
window.addEventListener( "load", completed );
}