在650论坛里经常会看到有争论程序到底应该装ram里还是装卡里.支持装卡里的一派总是说650的ram太小了.只有24M.装一些程序就只剩10来M 了.太多的程序会影响系统运行速度.所以能装卡里就装卡里.因此还引出了众多的工具如powerrun,zlink,TealAlias等等专门用来把 ram里的软件弄到卡上去以腾出ram空间.
事实真的如此吗?
其实这是一种根深蒂固的误解!误解的来源就是ppc和smartphone.也就是微软的windowsmobile的概念.在早期的ppc里面.运行内存和存储内存是共用一个存储器的.所以在系统里都有一个设置.可以自己选择把空间主要用来进行存储还是运行.所以装多了软件以后就会带来运行空间的下降导致系统效率降低.这个观点在没玩过palm机的玩家心里造成了根深蒂固的观点.那就是程序装多了影响速度!但是这个理论到了650上就完全不成立了.
650第一次采用了所谓的NVFS.也就是掉电后不损失数据的文件系统.因此而引出了一个新的概念dbcache.这样就使palm的文件解构跟pc上的结构很相似.存储空间和运行空间完全分开了.这和palm以前的文件结构是完全不同的.下图是来自freetong的一张650的文件系统结构说明图.
左侧NANDFlash为掉电不掉数据的部分.右侧DRAM为掉电即丢失的部分.comPRessed rom就是系统rom的存放位置.user data就是我们所安装在ram里的程序存放位置.650的启动过程是这样的.系统重起后从rom里解压出系统文件到uncompressed rom里作为系统基本文件启动.然后从user data里把要常驻系统的程序复制到dbcache里运行.这样系统就完成了初始化.如果再运行其他程序的话就继续从userdata里调入dbcache里来运行.至于dynamicheap则是运算寄存器.和文件无关.
由此可以看到.在ram里装程序的多少完全不会影响到系统的运行效率.只有常驻内存的程序多少才会影响系统效率.无论你是把程序装在ram里还是卡上.它都要通过dbcache来运行.因此尽量增大dbcache的空间才是正确的做法.
那如何来增大dbcache的空间呢?事实上.dbcache的空间一般很容易被rom所占用.主要原因就是因为650的官方rom做的不太合理.有些无用的东西都塞在里面.所以系统启动时解压到uncompressed rom里后还放不下.于是就塞进了dbcache里.导致dbcache空间急剧减少.也导致了系统运行速度降低和不稳定的发生.所以要加快系统速度和提高稳定性.最可行的办法就是自己刷入一个新的精简rom.让系统rom文件解压后不占用dbcache空间,这样才能真正让系统运作如飞.
另:其实系统不稳定的一个原因也是来自这个dbcache.因为它是一种全新的结构.很多plam上的程序对它的支持不是太好.导致系统在自动对dbcache进行清理的时候发生错误而重新启动.这个问题就不是我等所能解决的了.唯一的办法就是尽可能的使用650专用版的程序.或者使用rlock把程序彻底锁定在dbcache里以策安全.