SIM900a gsm module is sending data with delay

I want to send data to an android app at every one second but hardware is sending data with a delay of 34-35 second, kindly provide me an appropriate solution this is my code,currently i am only sending hello to mqtt.

#include <string.h>
#include <stdint.h>
int val=0;
void mqtt_connect_message(uint8_t *, char *);

void mqtt_publish_message(uint8_t *, char *, char *);

void mqtt_disconnect_message(uint8_t *);

#include <SoftwareSerial.h>
SoftwareSerial GPRS(9, 10); //RX, TX

//but is more ‘smooth’
#define NUMSAMPLES 5

int samplesT [NUMSAMPLES];
int samplesH [NUMSAMPLES];
int HTU_Temp=0;
int HTU_Hum=0;
String gprsStr = “”;
int index = 0;
byte data1;
char atCommand[50];
byte mqttMessage[127];
int mqttMessageLength = 0;

//bolean flags
boolean smsReady = false;
boolean smsSent = false;
boolean gprsReady = false;
boolean mqttSent = false;

void setup(){
Serial.begin (9600); //debug
GPRS.begin(9600); //GPRS

Serial.println(“Sending Data to server using MQTT”);

}

void loop (){
// delay (1000); //Time to get GPRS Satable

// get_HTU();

Serial.println(“Checking if GPRS is READy?”);
GPRS.println(“AT”);
// delay(1000);

gprsReady= isGPRSReady();
if(gprsReady == true){
sendMQTTMessage(“gpsDevice”, “iot.eclipse.org”, “1883”, “LOCATION”, “HELLO”);
}
delay (1000);
val++;
}

boolean isGPRSReady(){
GPRS.println(“AT”);
GPRS.println(“AT+CGATT?”);//attach gprs
index = 0;
while (GPRS.available()){
data1 = (char)GPRS.read();
Serial.write(data1);
gprsStr[index++] = data1;
}
Serial.println(“Check OK”);
Serial.print("gprs str = ");
Serial.println(data1);
if (data1 > -1){
Serial.println(“GPRS OK”);
return true;
}
else {
Serial.println(“GPRS NOT OK”);
return false;
}
}

void sendMQTTMessage(char* clientId, char* brokerUrl, char* brokerPort, char* topic, char* message){
GPRS.println(“AT”); // Sends AT command to wake up cell phone
Serial.println(“send AT to wake up GPRS”);
delay(1000); // Wait a second
// digitalWrite(13, HIGH);
GPRS.println(“AT+CSTT=“bsnlnet”,”","""); // Puts phone into GPRS mode
Serial.println(“AT+CSTT=“bsnlnet”,”",""");
delay(1000); // Wait a second
GPRS.println(“AT+CIICR”);
Serial.println(“AT+CIICR”);
delay(1000);
GPRS.println(“AT+CIFSR”);
Serial.println(“AT+CIFSR”);
delay(1000);
strcpy(atCommand, “AT+CIPSTART=“TCP”,”");
strcat(atCommand, brokerUrl);
strcat(atCommand, “”,"");
strcat(atCommand, brokerPort);
strcat(atCommand, “”");
GPRS.println(atCommand);
Serial.println(atCommand);
// Serial.println(“AT+CIPSTART=“TCP”,“mqttdashboard.com”,“1883"”);
delay(1000);
GPRS.println(“AT+CIPSEND”);
Serial.println(“AT+CIPSEND”);
delay(1000);
mqttMessageLength = 16 + strlen(clientId);
Serial.println(mqttMessageLength);
mqtt_connect_message(mqttMessage, clientId);
for (int j = 0; j < mqttMessageLength; j++) {
GPRS.write(mqttMessage[j]); // Message contents
Serial.write(mqttMessage[j]); // Message contents
Serial.println(”");
}
GPRS.write(byte(26)); // (signals end of message)
Serial.println(“Sent”);
delay(8000);
GPRS.println(“AT+CIPSEND”);
Serial.println(“AT+CIPSEND”);
delay(1000);
mqttMessageLength = 4 + strlen(topic) + strlen(message);
Serial.println(mqttMessageLength);
mqtt_publish_message(mqttMessage, topic, message);
for (int k = 0; k < mqttMessageLength; k++) {
GPRS.write(mqttMessage[k]);
Serial.write((byte)mqttMessage[k]);
}
GPRS.write(byte(26)); // (signals end of message)
Serial.println("-------------Sent-------------"); // Message contents
// delay();
GPRS.println(“AT+CIPCLOSE”);
Serial.println(“AT+CIPCLOSE”);
delay(1000);
}

The SIM900A is a 2G module, Dont expect it to send data so fast.
You might achieve it with always open TCP connection(TCP transparent mode) and send very small amount of data every second.
GPRS commands on 2G modules take a few seconds to execute, So your library is waiting for acknowledgement from network, which makes it slow.