Toppy Memory

What happens when you run out of Memory?

Note that memory (the volatile stuff that gets cleared when you put your Toppy into standby) is not at all the same thing as your Toppy's disk space, which permanently stores your recordings, your TAPs and their data files.  The Toppy's memory is used as the working space for your TAPs to cache (temporarily store) data that the TAPs need while they're running, as well as the TAP itself. 

TAPs take up memory when they run.  In particular, MyStuff holds a LOT of information in memory (for speed reasons). This includes all the EPG data that has been collected on MyStuff's behalf (usually by EPG2MEI for OTA data in the UK, eit2mei for OTA data elsewhere, and/or rt2mei data gathered offline), plus information about your searches, recordings and timers. 

The Toppy firmware is notoriously bad at memory handling once the free/available memory drops below about 5MB.  You are likely to get memory corruption, and the nature of memory corruption is that the results are completely unpredictable and can cause all sorts of symptoms, including - but not restricted to - disk corruption due to file pointers being overwritten by entirely random data.  The corrupted files could be your recordings, your TAPs, or your TAPs' data and config files.  It is also possible that memory corruption can lead to corruption of the EEPROM where your firmware is installed (See this thread as an example of this happening). 

Consequences for MyStuff users

The requirement for all this memory can cause a significant issue for MyStuff users with 5810s, unless they take steps to deal with it, because a 5810 only has 75% of the memory that a 5800 has available for TAPs to use.   For example, I did some (unscientific) experimentation with my main 5800 and my 5810 to see how much memory each had, both on startup with no TAPs running, and with all my usual TAPs running.  There are some differences (e.g. the 5800 has TF5000 Display and FFWD installed, whereas my 5810 doesn't have either (or an equivalent of the TF5000 Display TAP)

Facts and Figures - an overview

 Machine   Avail Mem TAPless  Avail Mem Normal
581015MB   7MB 7219925

Both machines have only 26 TV channels and 10 Radio channels, and my 5810 still only has 7MB of available memory on startup.  Without channel pruning, most people have something like 84 TV and 20 Radio channels (and that's assuming no duplicates).  It doesn't take too much brainpower to work out that approximately three times as many channels will take approximately three times as much memory to hold.  If you add rt2mei data, that could approximately double the space required for the EPG data again (perhaps more - you'll get EPG data for two weeks instead of one, and you'll also get additional data about the first week's programmes too). 

To put it another way, channel discipline is important, and the Channel Organiser TAP is a godsend!  That's why it's now one of the Utility TAPs now automatically added to your Toppy by the MyStuff installer. 

If you do the arithmetic, you'll see that the TAPs on my 5800 use 9MB, whereas they use 8MB on the 5810.  This is largely due to the different amount of data being used by MyStuff on the two machines.  At the time when the experiments were done, I had recently used the MyStuff installer to reinstall everything on the 5800.  This includes downloading some preliminary EPG data which includes rt2mei data;  my 5800 still had 5 additional days' worth of rt2mei EPG data which wasn't present on the 5810.   MyStuff on the 5800 was using 6MB, whereas onthe 5810 it only needed 4.7MB (see below).  The 5800 also has considerably more recordings, and more timers (but fewer searches).  

Memory required for individual TAPs, as reported by TAP Commander

For the record, a couple of hours later, TAP Commander reported the following breakdown of the TAPs' memory usage.  You'll notice that the memory figures reported by MyInfo above are rounded to the nearest whole number, but TAP Commander (which I don't put in Auto Start) gives a more accurate report.

5800 TAPCommander Screendump
5810 TAP Commander Screenshot

 QuickJump 283.6 kB
 FontManager 397.8 kB
 Extend 62.7 kB
 SecCache (UK)
 188.2 kB
 EIT Sub (Game)
 188.2 kB
 TAP Commander
 445.4 kB
 TF5000 Display
 168.1 kB
 6.0 MB
 MHEG On/Off
 153.0 kB
 FFWD 192.0 kB

It's clear from the above figures that the best way to manage your Toppy's memory is to minimise the amount of data that MyStuff holds cached - and the easiest way to do that is the minimise the number of channels it holds EPG data for.  Note also that TAP Commander itself is the 2nd biggest memory user (albeit a long way behind MyStuff), and that's one reason why I don't have it in Auto Start.  (The other is that I only need it once in a blue moon.) 

The 5810 starts off with 5MB less memory to play with than a 5800, which is almost the total amount of memory required by MyStuff in this instance (6MB), and more than the 4.7MB in use by MyStuff on my 5810, so the difference in available memory on the two models is significant.

Advice for managing Toppy Memory

My advice for MyStuff users, especially for owners of the memory-challenged 5810, is:
  • above all, delete all unwanted channels*
    The two easiest ways to do this are:
    • use the Channel Organiser TAP on the Toppy (which will remember your choices for next time)
    • or - if you can easily connect a Windows PC to your Toppy - use the Channel Management routines in TopManager, which has an easy option to delete all Pay, Porn, Shopping and Social channels
  • if you use rt2mei, think carefully about which channels you need to capture this additional data for, and adjust your rt2mei settings to minimise the impact.  For instance, do you really need rt2mei information for the +1 channels?
  • do some housekeeping on your searches from time to time:
    • delete TSes, PSes and SSes that are no longer needed.
    • convert PSes to TSes and back again as a quick-and-dirty method to clear out any out of date Series Groups within PSes.
  • use the Recycle Bin's AutoDelete Period setting to physically delete watched recordings regularly after a fixed period of time (I use 8 days).
  • put your Toppy into Standby at least once per day (you can use MyStuff's Auto PowerOff time to do this automatically).  This will prevent any possible memory leaks from any of your TAPs from endlessly eating into your available memory.

* Even on a 5800 this is good practice for performance reasons:

  1. EPG2MEI won't waste time and computing power collecting EPG data for channels you'll never watch or record, and
  2. MyStuff won't waste time and computing power searching EPG data for channels you'll never watch or record to set timers on channels you do want.  It will particularly have an effect on search times when MyStuff is trying to resolve clashes and is therefore searching for alternative instances of a programme on ALL other channels.  (See MyStuff Searches - How the different search types work for more detail on how this works.)

This article is an expansion of this post in the UK Toppy forum