другой вопорс. у меня есть конфигурационный файл который часто перезаписывается и меняется в размере. сегодня он 152 байта, а завтра 170 байта. как ведет себя при этом SPIFFS? как дефрагментация файлов влияет на работу SPIFFSи скорость? спасибо.
Тестировал давно, почти пару лет назад. При диске в примерно в 1 мегабайт, заполненном на 50% и дефрагментации время открытия файла было ужасное - более длительности WDT у ESP8266. Скорость чтения данных из файла в виде переливания страницы в эксплорере с дерганиями. Для web такое не годится. За время, возможно там немного чего и оптимизировали (вроде ковыряли кратность запросов к размерам секторов и к буферу fifo SPI...), но не много. Гарантировать можно только, что при большой дефрагментации файл откроется за минуту и прочитается с передачей по WiFi ещё за пару минут.
У WiFi ESP8266 пинг в местной интрасети 0.5..2 мс, линейная передача (и прием) по TCP - до 1.2 Мегабайта в секунду. Диск должен работать быстрее, чтобы вписаться в эти параметры. К примеру, линейное чтение Flash, как и диска в web-свалке более дцати Мегабайт в сек. Но записи у меня там нет и нет никаких SPIFFS. SPIFFS же только для игры...
Запись прерывает все коммуникации по WiFi в ESP8266, т.к. на время стирания блока/сектора и его запись, исполнение кода из flash невозможно (отключен и "кещ" Flash). Работают только функции из IRAM и ROM. А большинство процедур в ROM у ESP8266 с ошибками и они не применяются.
Время стирания блока/сектора Flash (как и запись сектора) указаны в их PDF. Про сумму этих времен, без перерыва на всё остальное (и в реальности на ESP8266) уже описал: ~ 180 килобайт/сек. У SPIFFS показатели в сотни раз меньше при дефрагментации и большом кол-ве заполнения его диска. Он не может обеспечивать и логирование с UART в 9600 бод.