Cache size limit

Has there been a limit introduced to the cache size? On my old S905 boxes I used to be able to max out the memory by increasing the cache size. On the latest version of coreelec with a 4G S905x2 if never seems to use more than 250M no matter how big a cache I set in the Advanced Settings. Even if I set it to 2GB it still only seems to use 250M or there about. Its not a great problem I just thought I may as well use the memory as its there.

kodi wiki Example 5

I know what the setting are what I am saying is that if I put a buffersize of 2GB it only uses 250M anything over 250M is ignored I will try again and see what happens.

Yes, you are right. My advancedsettings have 1gb cache but the current nightly just ignore that.
CE devs I hope thats just issue.

I was beginning to wonder if it was just me. I have been looking at ways to use the extra 3GB or ram I did contemplate tempfs for the databases or at least the updates.

I shared the issue on the nightly topic.

I think it’s a Kodi problem in the Milhouse build for x86 the same.

Hi I looked through the source code for Kodi on GitHub and the xml reader reads an uint_32 which in theory means the buffer size of 4Gb should be available. I looked into CircularCache.cpp and that uses uint_64 for its pointers so there should not be a problem there. I looked at FileCache.cpp and can’t see that its limited anywhere where the value is limited. Its been about 10 years since I did any serious programming and I am only using the search in github to find stuff maybe its in the LibreElec.

Ok, I did some test. What we have written in the advancedsettings for cache, that not true, at least kodi not completely done.
Here is my results:
4K movie 50 GB > advancedsettings cache:1500MB > real cache (debuginfo,foward cache) : 649-551 MB

SDTVshow 0,5 GB > advancedsettings cache:1500MB > real cache (dbinfo,foward cache) : 731-522 MB

4K movie 50 GB > advancedsettings cache:1000MB > real cache (dbinfo,foward cache): 449-413 MB

SDTVshow 0,5 GB > advancedsettings cache:1000MB > real cache (dbinfo,foward cache): 548-413 MB

4K movie 50 GB > advancedsettings cache:500MB > real cache (dbinfo,foward cache): 231-206 MB

SDTVshow 0,5 GB > advancedsettings cache:500MB > real cache (dbinfo,foward cache): 273-206 MB.

I Did my own tests It allocates half as much memory as you request for the buffer. In the graph above I played the same file with 4.5GB, 3.5GB, 2.5GB,1.5GB and 500GB. It Buffered 1GB, 1GB, 1GB, 750MB and 250M respectively as measured by the amount of memory allocated and the grey buffered line. My box starts with 3GB free after buffering there is 2gb free. So reading between the lines, for me, it only uses a maximum of a third of the total memory that was free when it starts to play for the buffer. You have to set the buffer amount in AdvanceSettings to twice what you want allocated as the buffer. On the weekend I will try a couple of boxes with different amounts of memory and check my hypothesis.

Looking at the committed memory graph it does allocate the full amount of memory you request, upto the 2GB limit, but buffers only half of it and only shows only half the memory is used. Which probably something to do with the way the circular buffer works.