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/

Reply via email to