I measured the throughput of a locally bound TCP socket connection on my computer (Intel Q9550, 64 GB RAM, Windows XP 64 bit) using iperf. I got dissatisfying results (around 1.6 Gbit/s) each time, no matter how I tweaked the TCP settings (buffer length, window size, max segment size, no delay). I got similar results when I tried netperf.
Now, I understand (from sources like these) that the average throughput of a loopback connection should be around 5 Gbit/s. What could be the reasons for such poor performance?