Total text size limit is 2 GB

From SuperMemopedia
Jump to navigation Jump to search

Problem

Total text size in all SuperMemos from SuperMemo 9 (1998) through SuperMemo 18 is 2 GB.

User S.A. was first to reach that limit and documented the problem by meticulous experimentation.

This is a design problem that is fixable. It will be relatively easy to change the limit to 4 GB and still keep the 32-bit limit on text registry pointer size. However, 4 GB might still be reachable in a hungry application of SuperMemo. Using 64-bit would push the limit beyond a human capacity. However, this would require a major redesign of SuperMemo, which could only be achieved in the next generation of the program.

It is important to note that even switching to 4 GB would instantly halt the development cycle due to the need for comprehensive testing.

Workaround

As 2 GB is well beyond human learning capacity, it should be possible to make major size savings by changes to strategy, e.g. always using Done on processed articles. Also, reducing the importability threshold, which is pretty natural in prolonged use when it becomes apparent that some text will never be processed or even used in a lifetime.

Technical

If you worry about the limit, check the size of your text.rtx file, which is usually the largest registry file in SuperMemo collections.

In older version that file might be named text.reg.

If you look inside, that file may contain some empty spaces left after deleting texts. The file is compressed during Repair collection with Rebuild registries checked.