A high number of DOM elements means a lot of work for the browser to render the page.
It also slows down Javascript DOM queries, as there are more elements to search through.
A deep DOM makes difficult the CSS matching with DOM elements.
It also slows down Javascript modifications to the DOM because dimensions calculations bubble up. Same thing for Javascript events.
iFrames are the most complex HTML elements. They are pages just like the main page and the browser needs to create a new page context, wich has a cost.
This graph gives a quick view of when the Javascript interactions with the DOM occur during the loading of the page.
The table below shows the interactions between Javascript and the DOM. It is usefull to understand what's going on when the page loads.
The tool is slower than a real browser, so durations are a little exagerated.
The .bind() method attaches the event listener to each jQuery element one by one. Using the .on() method is preferred if available (from v1.7).
First one is: {{node.data.callDetails.context.firstElementPath}}
Phantomas is a web performance metrics collector. You can find here the (almost) entire list of metrics from Phantomas.