Monthly Archives: July 2012

Update: 1.2.5 version is ready.

  • Minor bug fixed.
  • UI tweak.

About next release plan: one or two minor bug fixed version will follow. After that, functionality upgraded version will release, especially for ‘social feature’.

Advertisements

Performance Info

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.

Memory footprint

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.

Drawback

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.

General Guideline

(This is based on version 1.2.4. Detailed information can be changed in later release.)

How many articles can RssBook store?
How long does it take to sync first?
How to speed up sync?
Advice to feed sync setting
Enable auto sync
Changing article saving count
Changing subscriptions will require extra time on next sync.
Images and thumbnail
Disk space
Adding new folder to home

How many articles can RssBook store?

For most devices(iPad, iPhone4 later), up to 100,000 articles, comportable use. If exceed over 200,000, start loading time will take too long. Actually there is no limit.

Despite increase of start loading time, once loading finishes, article browsing will be fast enough.

How long does it take to sync first?

It can varies by device and feed content.Approximately 10,000 new articles per a hour(iPad, iPhone4 later). So it will take about 10 hours for 100,000 articles for first sync.

How to speed up sync?

RssBook is synced feed by feed. So the number of feeds and sync setting are important.

First, organize your feed subscription in google reader. The recommended number of subscription is about 10~50 and not exceed 100. Do not subscribe unnecessary feed.

Second, take time on indivisual feed sync setting in RssBook(refer to the next).

With regard to device, multicore CPU(iPhone4S, iPad2 or later) will enhance performance. And free disk space also important for speed(at least 15%).

Advice to feed sync setting

Categorize feed. For example,

  1. personal blog: long retention
  2. professional blog worth reading old or archieving: long retention
  3. news feed with short description: short retention
  4. gossip blog not worth archieving: very short retention.

Long/short retention meanings depends on user’s choice.
Generally, regard short as 500~1000, long as 2000~.

Reduce ‘Sync past articles’ setting value will be helpful to daily sync. This setting decides actual sync range. Originally, intended for syncing article that modified outside RssBook. But after google reader deprecate ‘social feature’, it becomes not so important.

Enable auto sync

More often you sync, shorter time it takes. We recommend more than 2~3 times a day. Enabling auto sync is strongly recommended.Default network setting of Auto sync is Wi-Fi connected. After finish first sync, you’d better change it to 3G/Wi-Fi(any network).

Changing article saving count

Article saving count means max saving ‘capacity’ for that feed.When first sync, articles are stored up to that count if available.

But when daily sync, only new and recent articles are synced. And if newly saved articles cause exceeding capacity, then articles are removed from the oldest by excess count(Purging).

So, once first sync end, even if you increase article saving count, it does not re-download past articles. It only increase saving capacity, which means ‘purging will not occur’.

If you want to save past articles after first sync end, use ‘Resync all article’ option. It is located in sync setting per feed, set ‘Use Account Setting’ to no, adjust article saving count as you want, and finally enable ‘Resync all article’ option at bottom. This option is only available at sync setting per feed, not account sync setting.

Changing subscriptions will require extra time on next sync.

If you subscribe a feed, first sync for that feed will occur on next sync.

If you unsubscribe a feed, purging all the articles of that feed will take place.RssBook indexes articles elaborately for grouping and filtering, which require a lot of database works. So purging articles is never a trivial job, it take a half of the time that need for new sync.

We recommend that subscribing, unsubscribing and organizing several feeds at the same time. After modifing feeds subscription, give sufficient time to next sync.

Images and thumbnail

Thumbnail is always searched and generated as long as article has at least one valid image(and if not too big). Generating thumbnail need some internal works and occupies the majority of image syncing time.Images are for two indention. One is for fast offline loading from local disk. The other is image show of that feed. Image show functionality is located in folder action menu.

Be cautious in image saving count. Nowaday images are big and some design blog may have dozens of image in one article. So if set too high, it occupies a lot of disk space, which require several giga bytes disk space when you subscribe many image intensive feeds.

Note that ad images are not saved and always shown from ad server for blog owner’s rights.

Disk space

More articles, more space. On average, 100,000 articles require about 1GB disk space. But it can change dramatically depending on article content and image saving option.

You can check space usage at account info in setting menu. Watching the value occasionally, you can estimate proper space requirement for your subscription.

In addition, low free disk space can hurt performance. RssBook is disk IO intensive and flash disk drive will perform well with enough free space.

Adding new folder to home

‘Add this folder to home’ is located in folder action menu.
Every folder can be added to home if not already child of home.

It will be helpful to set filtering before adding action.
When adding a folder to home, current filtering setting is also saved as default filtering value of newly created folder. By this way, you can create highly customized, extremely useful folders for your own use.

UI Guide For iPad

(This UI Guide is based on version 1.2.4 in iPad.)

1. Home Folder


1) Sync button: Start sync manually or stop sync while syncing.

2) Sync status bar: Last sync date info.
While syncing, display current process in detail.When just finished sync, show last sync result.

3) Edit button: Change the order of folder list or remove user added folder. Adding folder to home can be done by folder action menu.

4) Article count: Recent day’s unread/read count and total count. Recent day interval can be changable by user at ‘unread counting’ item in display setting menu.

5) Navigation title bar: Display current folder path of right content pane. Tapping on folder title will pop to that folder directly.

2. Article List and View


1) Grouping button: Available grouping options are by feed, label, google attribute(starred..), tag, author, and date. some options(tag) are recursive.

2) Filtering button: Filter out current folders article by read/unread, facebook like count…

3) Swipe right: Same effect as back button(going to parent folder).

4) Long press cell: When long pressing cell, article action menu will pop up. ‘Mark all as read older than this article’ menu will appear only in this popup.

For article view,

5) Swiping Left/Right: Go to next/previous article.

6) Long press menu: When long pressing content words, additional menu appear.
Wikipedia, Google, Wiktionary and Search in article is provided default. You change the order and visibility of menu at display setting.
And two more ‘user defined menu’ are available. With user defined menu, you can add some localized dictionary for your language.

7) Double tap: Wen double tapping on article content, switch between full size view and normal size view(Supported on iOS 5.0 or later). Same effect as ‘FullSize’ button on toolbar.

8) Social bar: You can enable/disable this social bar in social setting menu.

UI Guide For iPhone

(This UI Guide is based on version 1.2.4 in iPhone.)

1. Home Folder

1) Sync button: Start sync manually or stop sync while syncing.

2) Sync status bar: Last sync date info.
While syncing, display current process in detail. When just finished sync, show last sync result.

3) Edit button: Change the order of folder list or remove user added folder. Adding folder to home can be done by folder action menu.

4) Article count: Recent day’s unread/read count and total count. Recent day interval can be changable by user at ‘unread counting’ item in display setting menu.

2. Article List


1) Grouping button: Available grouping options are by feed, label, google attribute(starred..), tag, author, and date. some options(tag) are recursive.

2) Filtering button: Filter out current folders article by read/unread, facebook like count…

3) Swipe right: Same effect as back button(going to parent folder).

4) Long pressing cell: When long pressing cell, article action menu will pop up. ‘Mark all as read older than this article’ menu will appear only in this popup.

Additional,Title tapping: Shortcut to parent folder path and recently viewed article list will popup.

3. Article View


1) Swiping Left/Right: Go to next/previous article. Same effect as next/previous button in navigation bar.

2) Double tap: Double tapping in content area will toggle visibility of navigation bar and toolbar. When user made first scroll, bar will be automatically hidden.

3) Social bar: You can enable/disable this social bar in social setting menu.

4) Long press menu: When long pressing content words, additional menu appear.
Wikipedia, Google, Wiktionary and Search in article is provided default. You change the order and visibility of menu at display setting.
And two more ‘user defined menu’ are available. With user defined menu, you can add some localized dictionary for your language.