The disc cache has proved problematic on some operating systems where disc operations are slow.
After a great deal of testing and benchmarking it has been determined the principle slowdown on many of these platforms comes from the system overheads creating the forest of directories and small files that hold the cached data. This overhead when coupled with the very slow synchronous write out of some operating systems (like RISC OS) causes the "slow writer" message and cache disablement to occur. In an attempt to address this I have recently reworked the handling of small files within the cache. There are now a small number of relatively large files into which all small objects are placed. This has resulted in the majority of objects (>70%) being held in these blocks rather than in separate files on disk. The resulting cache directories have a correspondingly smaller number of files and directories within them and should (I hope) exhibit greatly superior performance. Of course all this is theoretical and it may not help at all, my previous attempts at improving this situation have not been very successful! There is one drawback, the new scheme has changed the cache layout in an incompatible way. While this will not be an issue at run time and the cache will reinitialise itself at first start of CI builds after #2688 it will leave the entire contents of any old cache behind and never expire data from it. Therefore I advise the removal of the contents of the NetSurf cache before running any of these CI builds. -- Regards Vincent http://www.kyllikki.org/