/*
LinkedList Example
Link: http://github.com/ivanseidel/LinkedList
Example Created by
Tom Stewart, github.com/tastewar
Edited by:
Ivan Seidel, github.com/ivanseidel
*/
#include <LinkedList.h>
LinkedList<String> myList = LinkedList<String>();
void setup()
{
Serial.begin(115200);
uint32_t ms = millis();
Serial.println("BEGIN------------------------");
mem();
for (uint8_t f = 0; f < 10; f++)
{
add();
while (myList.size() > 0) {
// String s = myList.get(0);
String s = myList.shift();
// Serial.printf("%s\n", s);
}
mem();
Serial.print("FOR------------------------:");
Serial.println(f);
}
if (myList.size() == 0) myList.clear();
Serial.println("END deque------------------------");
mem();
Serial.print("TIME:"); Serial.println(millis() - ms);
}
void loop() {
}
//-----------------------------ADD
void add() {
String ruString; //RU
for (int n = 0; n < 5000; n++)
{
ruString = String(n);
myList.add(ruString);
}
}
//-----------------------------MEM
void mem()
{
uint32_t freeHeapBytes = heap_caps_get_free_size(MALLOC_CAP_DEFAULT);
uint32_t totalHeapBytes = heap_caps_get_total_size(MALLOC_CAP_DEFAULT);
float percentageHeapFree = freeHeapBytes * 100.0f / (float)totalHeapBytes;
// Print to serial
Serial.printf("[Memory] %.1f%% free - %d of %d bytes free\n", percentageHeapFree, freeHeapBytes, totalHeapBytes);
uint32_t Free = ESP.getFreeHeap();
uint32_t alloc = ESP.getMaxAllocHeap();
Serial.print("Free:"); Serial.print(Free);
Serial.print(" alloc:"); Serial.println(alloc);
}