Recognize poor guard performance and switch?
Ticket #1919 (moved) showed that the expected performance when using guards is comparable to the expected performance when picking the fastest guards. The penalty from using the slowest guards is especially noticeable in the 1MB and 5MB torperf runs.
What property is it about the guards that lets us guess when we have the slow ones? Can we sum the bandwidth of our top three guards and realize that it's significantly below the average?
Ultimately I expect we'll want the Tor client to be able to recognize that it's chosen a poor set of guards and swap in a faster one so it's not in the bottom, say, 20%.