Arduino se Pone Lento al ejecutar el programa. (Ralentiza)

Estimados, tengo una duda hace un tiempo que no logro resolver.
Tengo un Sketch, que lee, datos de un gps, y activa pines alternadamente,
Para decodificar los datos del Gps uso la TyniGps

Este es el codigo que ejecuta para leer el Gps.

 bool newData = false;
                       
              // For one second we parse GPS data and report some key values
  for (unsigned long start = millis(); millis() - start < 1000;)
  {   
                          
                          
    
    while (Serial1.available())                                     //This line has been change
    {
      char c = Serial1.read();  {                                   //This line has been change
      // Serial.write(c); // uncomment this line if you want to see the GPS data flowing
      if (gps2.encode(c)) // Did a new valid sentence come in?
        newData = true;
       // displayInfo();
        // displayInfo = true;
         break;
    }
}

            
            //////////////// fin gps2

y esto código también esta en el Loop , y se usa para manejar otras funciones. Sera que al usar dos millis se pone lento? Tecnicamente, tengo puesto que al contar 10 segundos, ejecute una cosa, pero, lo que haces es cuando pasan 20 segundos,, exactamente el doble del tiempo.

int a = millis();

        // Timer interno T3
       if (a - previousMillis > 1000)
             {
             previousMillis=a; 
            contseg1++;                
                Serial.print("Contador:"); Serial.println(contseg1);
               
                    if (contseg1==sumatiemposeg)
                        {
                           activalectura=1;
                             contseg1 =0;
                              mix++;
                          }             
                
            }
        //control de tiempo.

Please state your question in English too (google translate is OK)