/* Test de Esfuerzo basado en ejecutar un bucle grande de operaciones aritméticas
https://wokwi.com/projects/406962863798132737
HAY UN ERROR:
CON 6000 MILLONES SE LLEGA AL MAXIMO DE UNSIGNED LONG LONG EN LA SUMA (1,8 X 10^19) Y
EL TIEMPO DE EJECUCION DA CERO!!
Este código mide el tiempo que tarda en sumar los números del 0 a 6000 millones y muestra
el resultado en el monitor serial, lo que te permitirá comparar la velocidad de ejecución
en Arduino vs ESP32.
Arduino Uno:
Debido a su menor velocidad de reloj (16 MHz) y capacidad de procesamiento, este código
tomará mucho tiempo en ejecutarse comparado con ESP32 (106 segundos para 100 millones).
ESP32:
Tiene un procesador mucho más rápido (hasta 240 MHz) y debería completar el cálculo en una
fracción del tiempo que tarda el Arduino Uno (22 segundos, un 20% del tiempo de Arduino)
*/
void setup() {
Serial.begin(115200);
// Esperar a que el monitor serial se conecte
delay(100);
unsigned long long startTime = millis();
// Realizar un cálculo intensivo en la CPU
unsigned long long suma = 0;
for (unsigned long long i = 0; i < 6500000000; i++) {
suma += i;
}
unsigned long long endTime = millis();
unsigned long long elapsedTime = endTime - startTime;
Serial.print("Suma: ");
Serial.println(suma);
Serial.print("Tiempo de ejecución: ");
Serial.print(elapsedTime);
Serial.println(" ms");
}
void loop() {
// No se requiere hacer nada en el loop
}