Save articles as many as possible,
Use memory as small as possible,
Perform as fast as possible.
This is RssBook’s development mission. For this, a lot of effort has done and successfully accomplished.
To accommodate large articles, all data is stored in local sqlite database. For the high speed, well-defined index data is always loaded in runtime. When displaying folders or grouing/filtering, index data is used. When requested article contents, load dynamically from database or from runtime cache. This mechanism lead to fast but small memory system.
Internal index data size is approximately 12 MB per 100,000 articles. Cache size is under 10MB and automatically cleared when not used or low memory condition. This amount of memory usage will be no problem for most iOS devices.
Instrument screen capture for memory allocation with iPad
•When article counts 106,879
•When article counts 204,282
In actual use, there are other factors that use large memory. Web pages, images, UI objects and so on. iOS system is reliable to handle low memory condition. But in rare case, memory is not recovered as expected. You can monitor current memory usage in last sync status menu.
One of drawbacks in index mechanism is index loading time. When RssBook lauches, index data is loaded into runtime memory. More articles, Longer loading time.
If article exceed a certain count(for example, 200,000 for iPad2), loading index will be considerably delayed. But once loading finishes, runtime speed will be fast enough.
The things that help performance
Lastest devices, of course, will be favored, especially for dual core CPU.
Free disk space is also important. RssBook use database, so disk speed is significant factor for syncing and startup index loading. In our test, performance was best when at least 15% free space is available.