Many options, most of which are free so try some out.
Runkeeper, mapmyride, strava, cyclometer, etc.
I like Strava, partially for the social features, but also went to strava premium largely to track my personal best and compare against that on particular segments. I don't EVER expect to be KOM for any segments as I am not that fast but for me it is motivating to try to beat myself and set new personal bests.
Cyclometer looks very interesting and allows uploading to Strava.