Big HEX file (sketch uses 60% memory in UNO)

Why does simple code take up 60% of the memory of arduino uno?

Is it possible to optimize the Hex file?

#define BLYNK_PRINT Serial    // Comment this out to disable prints and save space

// Default heartbeat interval for GSM is 60
// If you want override this value, uncomment and set this option:
//#define BLYNK_HEARTBEAT 30

// Select your modem:
//#define TINY_GSM_MODEM_SIM800
//#define TINY_GSM_MODEM_M590

#include <TinyGsmClient.h>
#include <BlynkSimpleSIM800.h>

// You should get Auth Token in the Blynk App.
// Go to the Project Settings (nut icon).
const char auth[] = "____________________________________";

// Your GPRS credentials
// Leave empty, if missing user or pass
const char apn[]  = "internet";
const char user[] = "";
const char pass[] = "";

// Hardware Serial on Mega, Leonardo, Micro
//#define SerialAT Serial1

// or Software Serial on Uno, Nano
#include <SoftwareSerial.h>
SoftwareSerial SerialAT(7, 8); // RX, TX

TinyGsm modem(SerialAT);

void setup()
  // Set console baud rate

  // Set GSM module baud rate

  // Restart takes quite some time
  // To skip it, call init() instead of restart()
  Serial.println("Initializing modem...");

  // Unlock your SIM card with a PIN

  Blynk.begin(auth, modem, apn, user, pass);

void loop()

Скетч использует 19276 байт (59%) памяти устройства. Всего доступно 32256 байт.
Глобальные переменные используют 608 байт (29%) динамической памяти, оставляя 1440 байт для локальных переменных. Максимум: 2048 байт.

this mainly because of the used libraries , which has alot of code but not appearing to you in the sketch.
also not that Arduino UNO has a very small space for your FW comparable to other boards like ESP8266-12.

@russo mostly this is not Blynk itself but low level connection handling. Here is more info - Arduino Blynk library static memory footprint report

Maybe @vshymanskyy can make few more updates.