本人我接觸PDA手機領域不久.心中一直存在著一個問題.到底軟體是裝在PDA裡面快,還是安裝在記憶卡快在網上卻少有人討論過此問題.實讓我得知的資訊有限雖說市面出現有高傳輸.高倍數.記憶卡,但也僅限於在資料的傳輸.是否對於程式流暢度也有所影響亦有一個說法.高傳輸.高倍數.記憶卡用於照相.錄影這方面有很大影響不知是否屬實在者如遇到PDA導航模式的情況下.是安裝在手機裡順暢呢還是安裝在記憶卡快這些問題也況擾小弟我許久.請各位網友大大為我解答
自從Windows Mobile 5之後,到現在的Windows Mobile 6,「儲存」記憶體都已經改為Flash Memery,主要是避免以前沒電資料就流失的問題至於「程式」記憶體,目前則還是用RAM,所有的程式在執行的時候,都是在程式記憶體中運作「儲存」記憶體跟儲存卡一樣,只是存放資料檔與程式檔的地方,有點像PC的HD一般執行程式的時候,只要載入到「程式」記憶體之後,執行的效率是一樣的有差異的部分則是在於資料存取時,因為有IO讀寫的動作,這就要看「儲存」記憶體與儲存卡的速度了一般來說,像寫入照片、影片的時候,因為是大量資料的連續寫入,高速的儲存卡絕對有幫助導航的時候,由於導航軟體已經載入到「程式」記憶體執行,因此速度是一樣的,至於有差異的部分則是讀取圖資,不過圖資應該都是存在記憶卡吧
再補充一下無論是放在 SD Card or internal Flash 裡的 Executable File, 當 launched 時, 其實 OS 並不會把整個 program loaded to RAM, 而是只 loaded 必要的到 RAM, 之後當需要的時後才一點一點 loading to RAM, 也就是所謂的 demand paging. 但要注意更遭糕的是, 從 storage loading to RAM 其實 OS 只會很小氣的 allocate 一個 pool share 給所有的 App 用 (Pool Size 端看個 OEM 廠商自己訂, 很多 default setting 只有 2MB), 萬一 pool 滿, 就會有 code 被 page out, 要是你的 code 倒霉被 pageout 那下次 run 到時又要 page in, 這一來一回 performance 就超差了.有一個方法倒是可以試看看就是把 Demand Paging 關掉, 因為 Internal File Systme 已經在 booting 時被定死了, 就算試著去改也沒用, 只能重新 build OS imageexternal 的 Storage like SD Card, 倒是可以試看看修改[HKEY_LOCAL_MACHINE\System\StorageManager\FATFS]"paging"=dword:0or[HKEY_LOCAL_MACHINE\System\StorageManager\Profiles\SDMemory\FATFS] or[HKEY_LOCAL_MACHINE\System\StorageManager\Profiles\SDMemory\FATFS] 也有可能 OEM 廠商自己造出其它別的一樣是 "Paging"=dword:0當然有一好沒兩好, 或許減少 Paging 少了一些 loading, 但可用的 RAM 變少, 或許又會出其它的 side effect.