I am working on a large project (a JavaScript runtime). I am starting to find that I am beginning to get "squeezed" on RAM. One of the things I seem to be finding is that when I have an active socket connection from a PC based client into my ESP32, the ESP32 seems to want to use ~20K of RAM to host that connection. When I close the socket, I get the RAM back. When I open a new socket, the free ram shrinks by about ~20K. My core question ... do we know what the anticipated overhead is in terms of RAM utilization in having a socket open.
I also find myself confused about the 512K statements about an ESP32 and the apparent ~200K of free heap shown to my application. I had assumed that the missing 300K might have been used for WiFi and network maintenance ... but if sockets are eating my ~200K ... my comprehension must be flawed.
Later ...
I did a bunch of memory tests using esp_get_free_heap_size() using a brand new C app ... and was unable to reproduce anything on the order of 20K. It seems that a new socket needs about 700 bytes and despite lots of pushes and pulls to it using the Linux "nc" command, haven't so far found any issues.
How much ram does a socket connection consume?
How much ram does a socket connection consume?
Free book on ESP32 available here: https://leanpub.com/kolban-ESP32