Hay varios conceptos erróneos acerca de GET y POST en HTTP. Hay una diferencia principal: GET debe ser idempotente, mientras que POST no tiene que serlo. Lo que esto significa es que obtiene no causan efectos secundarios, es decir, puedo enviar un GET a una aplicación web tantas veces como quiero (piensa pulsando Ctrl + R o F5 muchas veces) y las solicitudes será 'seguro'
No puedo hacer eso con POST, un POST puede cambiar los datos en el servidor. Por ejemplo, si pido un artículo en la web, el artículo debe agregarse con un mensaje POST porque el estado se modificó en el servidor, la cantidad de elementos que agregué aumentó en 1. Si lo hice con un mensaje POST y pulso actualizar en el navegador el navegador me avisa, si lo hago con un GET, el navegador simplemente enviará la solicitud.
En el servidor GET vs POST es pura convención, es decir, que es mi responsabilidad como desarrollador garantizar que codifique la POST en el servidor a no repita la llamada. Hay varias formas de hacerlo, pero esa es otra pregunta.
Para contestar la pregunta en realidad si uso GET o POST para realizar la misma tarea que no hay diferencia de rendimiento.
Puede leer el RFC (http://www.w3.org/Protocols/rfc2616/rfc2616.html) para más detalles.
Debe elegir GET versus POST en función de si la acción tiene efectos secundarios, no una diferencia de rendimiento percibida. – Draemon