Según creo el ciclo
for es el mas rápido de todos.
Esto se debe a que la condición de salida ya esta prefijada antes de iniciarse, lo que permite al compilador realizar optimizaciones utilizando registros internos del procesador para el contador y la condición de salida (en realidad deberiamos analizar el assembler generado en los diferentes casos). En el ciclo for la condición de salida no puede ser modificada.
Por ejemplo:
Código Delphi
[-]var
i, b, c: integer;
begin
b := 10;
c := 0;
for i:=1 to b do
begin
b := 5;
c := c +1;
end;
end;
Este ciclo se ejecuto 10 veces y no 5.
Igualmente la diferencia no creo que sea apreciable y lo mas probable es que termines perdiendo mucho mas tiempo en otras partes de tu codigo o simplemente por tener un servicio innecesario corriendo en la misma maquina.