In reference to the article posted here: http://www.geekzone.co.nz/content.asp?contentid=3722 and PalmOne's KB article http://kb.palmone.com/SRVS/CGI-BIN/WEBCGI.EXE?New,Kb=PalmSupportKB,ts=Palm_External2001,case=obj(35222) on the subject about the Treo 650's new memory usage and it's effect on the memory available to applications, I thought I'd explain a little further.
As described in these articles, the Treo 650 has added non-volatile flash memory which is exposed to applications as a file system. Previously, Palm applications on the Treo 600 could only really store persistent data in RAM databases which were managed by the operating system and kept alive as long as there was battery power. On the 650, applications can use either the older style RAM databases or they can store data directly into the flash storage system. If an application continues to use the older RAM storage system (what any Palm application that is not specifically optimized for the 650 would use), then the RAM databases are emulated by the OS and they will likely suffer the block size issue mentioned in the above article.
If an application is specifically optimized for the Treo 650 to store all of it's persistent data directly in the new flash file system, it can actually store more information on the Treo 650 than it could on the Treo 600. This is because if data is only stored in the new NVFS, data storage is only limited by the size of the flash file system and the data storage never has to be in system RAM.
As an example of one such application, the GoodLink email application by Good Technology has just recently shipped a version specifically for the Treo 650. In supporting this new device, Good has completely rewritten the storage system for the GoodLink software to optimize it for the new flash storage system in the Treo 650. Because of the special design for the 650 in GoodLink, we expect that users will actually be able to store MORE GoodLink email on the Treo 650 than they could on the 600, not less.
Here are some details.
GoodLink uses a database format specifically designed and tuned for the fixed block size in the flash storage system, so as to minimize any wasted space from those fixed size blocks.
With the speedier processor in the 650, GoodLink implements database-level compression which helps squeeze even more data into its databases.
Because the GoodLink databases are stored directly in flash memory, there are no intermediary copies of the databases that must be held in RAM while the application is running. This further reduces the amount of RAM that is consumed while the application is running. Only a few database read/write caches to enhance performance are temporarily held in RAM.
The end result is that GoodLink can actually store more data on a Treo 650 than it can on a Treo 600. If other applications make similar changes, they can see similar benefits.
Let me know if there are any further questions on this topic.
--John Friend
CTO, Good Technology