Blynk service restarting over and over again

hello there blynkers. my blynk keeps on connecting and disconnecting from the server. i am using esp8266 as wifi shield for the arduino . it was working fine but last night i noticed this peculiar behavior
here is the code

#define BLYNK_PRINT Serial
#include <ESP8266_Lib.h>
#include <BlynkSimpleShieldEsp8266.h>
#include <Servo.h>
#include <SimpleTimer.h>
#include <IRremote.h>

char auth[] = "85d4f18fda6946e8a4fafca8d185bf60";
char ssid[] = "Dreamerz";
char pass[] = "9023884488";
int khz = 38;


#define EspSerial Serial
Servo servo;
SimpleTimer timer;
IRsend irsend;


#define ESP8266_BAUD 9600
ESP8266 wifi(&EspSerial);

// THIS IS A FUNCTION WHICH YOU CAN PASS AND 
// ARGUMENT TO, AND CAN BE USED LOADS OF TIMES
// QUICKLY AND EASILY. YOU SHOULD ALWAYS BUILD
// FUNCTIONS TO DO REPEATED TASKS

void servo_ON(int data) {
  digitalWrite(18, HIGH);
  delay(10); // NO MORE THAN 25ms is OKAY
  servo.write(data); // PASSING data TO THE servo.write() COMMAND
}

// THE SIMPLE OFF FUNCTION. THIS ONE CANT HAVE AN ARGUMENT
// BECAUSE IT IS A CALLBACK FOR THE TIMER. WHEN THE setTimeout()
// COMPLETES, IT CALLS THIS FUNCTION
void servo_OFF() {
  digitalWrite(18, LOW);
}
BLYNK_WRITE(V1) {
  if ( param.asInt() ) {
    servo_ON(255); // ENTER MOVEMENT VALUE AS ARGUMENT
    timer.setTimeout(1500, servo_OFF); // AFTER 1500ms (1.5s), RUN servo_OFF() ONCE
  } else {
    servo_ON(10); // ENTER MOVEMENT VALUE AS ARGUMENT
    timer.setTimeout(1500, servo_OFF);
  }
}
BLYNK_WRITE(V2) {
  if ( param.asInt()== HIGH ) {
    unsigned int irSignal[] = {4400,4300, 550,1600, 550,500, 550,1550, 600,1550, 550,500, 550,500, 600,1550, 550,500, 550,500, 600,1550, 550,500, 600,500, 550,1550, 550,1600, 550,500, 550,1550, 600,1550, 550,500, 550,1600, 550,1550, 600,1550, 550,1550, 600,1550, 550,1550, 600,500, 550,1550, 550,500, 600,500, 550,500, 550,500, 600,450, 600,500, 550,500, 550,1600, 550,500, 550,1550, 600,500, 550,500, 550,500, 550,500, 600,1550, 550,500, 550,1600, 550,500, 550,1550, 600,1550, 550,1600, 550,1550, 550}; //AnalysIR Batch Export (IRremote) - RAW
    irsend.sendRaw(irSignal, sizeof(irSignal) / sizeof(irSignal[0]), khz);
    
    
  }
}

BLYNK_WRITE(V0) {
  if ( param.asInt()== HIGH ) {
    unsigned int irSignal[] = {4350,4300, 600,1550, 550,500, 550,1600, 550,1550, 550,500, 600,500, 550,1550, 550,500, 600,500, 550,1550, 550,500, 600,500, 550,1550, 550,1600, 550,500, 550,1550, 600,500, 550,1550, 550,1600, 550,1550, 550,1600, 550,500, 550,1550, 550,1600, 550,1550, 550,500, 600,500, 550,500, 550,500, 550,1600, 550,500, 550,500, 550,1600, 550,1550, 550,1600, 550,500, 550,500, 550,500, 600,500, 550,500, 550,500, 550,500, 600,500, 550,1550, 550,1600, 550,1550, 550,1600, 550,1550, 550}; //AnalysIR Batch Export (IRremote) - RAW
    irsend.sendRaw(irSignal, sizeof(irSignal) / sizeof(irSignal[0]), khz);
  }
}

       





//--------------

  void setup() {
    pinMode(18, OUTPUT);
     servo.attach(10);
    Serial.begin(9600);
    delay(10);
    EspSerial.begin(ESP8266_BAUD);
    delay(10);
    Blynk.begin(auth, wifi, ssid, pass);
    }   
  


void loop(){
 

  Blynk.run();
  timer.run();
}

PS: i found the problem by trial and error. this happen’s when the arduino’s memory is almost full

have you tried resetting your hardware ?