-->
Page 1 of 1

Working SPIFFS version 0.3.6 or 0.3.7 with SINGLETON?

PostPosted: Sun Jul 30, 2017 5:13 pm
by postuma
Wondering if anyone has SPIFFS version 0.3.6 or 0.3.7 up and running with SINGLETON enabled?

I've got 0.3.6 (https://github.com/WereCatf/Arduino/tre ... 266/spiffs) running successfully with SINGLETON disabled, and am seeing an approximately 5-30% speed improvement on SPIFFS file reads, compared to version 0.3.4.

I would like to enable SINGLETON and experiment with different cache, page and block size parameters. This, however, throws a series of "struct is missing members errors". Before I start working on this, I wonder if anyone already has a working implementation? are there gains to be made? is it worth our time? recommended settings?

Regards,

Paul

Re: Working SPIFFS version 0.3.6 or 0.3.7 with SINGLETON?

PostPosted: Mon Jul 31, 2017 8:04 pm
by postuma
Update: I've upgraded SPIFFS to 0.3.7 and it's definitely better than 0.3.6 or previous. In most cases the improvement is minimal, BUT some files read extremely slowly from SPIFFS with the older versions. Example: one of my files took 845 msec to read from SPIFFS (this is a known location-based issue; when it's the only file in SPIFFS it was much faster) - with 0.3.7 the issue is resolved, and the file reads in 51.7 msec.

I started with Peter Andersson's code at https://github.com/pellepl/spiffs, but did have to make further changes to spiffs_api.h, spiffs_api.cpp, spiffs_hal.cpp in the core directory, and spiffs_config.h in the spiffs subdirectory to get it to work: see my fork at https://github.com/ppostuma/spiffs.

In order to enable SINGLETON I'll have to re-mount then rewrite SPIFFS with the new settings, each time I vary cache, page and block size parameters. Again, I don't know if there are enough gains to be made to make it worth our time, or what the optimum settings would be. I'd happily hear others' opinions - or will repost if/when I've had a chance to experiment.