Measuring by Hand: Developer Tools

Your job is to understand end user experience once a system
is in production. Long before you deploy the application, your developers
will have been using tools to estimate its performance. These include
sniffers that can decode network traffic and find granular protocol
issues, desktop software that measures responsiveness and suggests
corrections, and hosted services that test a page from several locations
to analyze its load time across the Internet.

If we’ve done our job explaining the elements of web performance,
you’ll be able to understand the results of these tools and pinpoint areas
for optimization.

Network Problems: Sniffing the Wire

There’s an old saying in networking: sniffers don’t lie.
Seeing the actual TCP/IP conversations that flow across a network
connection and reassembling them into the HTTP transactions between a
server and a browser is a time-consuming effort. It’s also the best way
to find out what really happened.

Wireshark (formerly known as Ethereal), shown in Figure 8-38, is the leading
free packet sniffer. You can narrow the traffic it captures to a single
TCP/IP session and reassemble the HTTP objects from the data stream. You
can also use timing information to measure performance extremely
precisely.