The RAM on a Windows CE–based device is divided into two areas: and the .
. Data inthe object store is retained when you suspend or perform a soft resetoperation on the system. Devices typically have a backup power supplyfor the RAM to preserve data if the main power supply is interruptedtemporarily. When operation resumes, the system looks for a previouslycreated object store in RAM and uses it, if one is found. Devices thatdo not have battery-backed RAM can use the hive-based registry topreserve data during multiple boot processes.
具體的設定可以在系統啟動後,Control Panel -> System -> Memory裡面看到。預設的是把記憶體五五開,一半給Storage Memory, 一半給ProgramMemory用。這樣顯然是不合算的。以64M的RAM為例, 啟動後Storage Memory 32M,而因為沒有留出介面讓使用者往裡面拷東西, 任何時候in use都不會超過10M; Program Memory也是32M,但啟動後就用掉27M, 實際上應用程式可用的記憶體只有5M, 一旦達到了上限,那麼每前進一步都要很艱難地去釋放幾十K記憶體,然後用掉,再去釋放幾十K記憶體,如此迴圈,此時應用程式的運行速度狂慢無比.
劃分的方法也很簡單,其實說白了就一句話,
但注意兩點,
(1) 必須寫在config.bib的CONFIG區裡, 不是plagform.bib不是config.reg等其他檔案而是config.bib,也不是config.bib檔案的任意地方而一定要在CONFIG REGION裡.
(2) FSRAMPERCENT這個變數一定得寫為FSRAMPERCENT, 不能寫成FSROMPERCENT不能寫成ILOVEU, 或者阿貓阿狗什麼的.
FSRAMPERCENT是一個4byte長度的十六進位數, 我們用代數假設 FSRAMPERCENT = 0xQXYZ,
其中Q,X,Y,Z都是十六進位數,Q(BYTE3)----------Z (BYTE0)
The following code example shows how to use FSRAMPERCENT to allocate available RAM to the file system.
FSRAMPERCENT=0x10203040
In this example, 64(0x40)* 4KB chunks are allocated to byte 0.
48 (0x30)*4KB chunks are allocated to byte 1,
32 (0x20) *4KB chunks are allocated to byte 2,
16 (0x10)* 4KB chunks are allocated to byte 3.
The total percentage of memory reserved for the file system would be ((64 + 48 + 32 + 16) * 4KB) / 4MB, or 15.6%.
config.bib檔案中的FSRAMPERCENT說明
FSRAMPERCENT:
格式:FSRAMPERCENT = number
預設值為0x80808080。指定為檔案系統分配的記憶體的百分比。number分為四個位元組,由十六進位表示。
byte0的值(單位為4KB)表示在第一個2MB中,其中每1MB包含的4KB的整數倍。
byte1的值(單位為4KB)表示在第二個2MB中,其中每1MB包含的4KB的整數倍。
byte2的值(單位為4KB)表示在第三個2MB中,其中每1MB包含的4KB的整數倍。
byte3的值(單位為4KB)表示在剩下的記憶體中,每1MB包含的4KB的整數倍。
計算一下預設值0x80808080表示的百分比:0x80*4K/1M = 0.5,因為每個位元組都等於0.5,所以整個佔用的百分比是50%。
config.bib檔案中的FSRAMPERCENT修改實驗資料
FSRAMPERCENT設定的值為儲存記憶體占系統整個記憶體的比例,系統整個記憶體=儲存記憶體+程式記憶體
在WINCE系統的控制台的系統的記憶體選項有對應的FSRAMPERCENT設定的一個進度條反應出來
prog ram is %50--------程式記憶體占整個記憶體的比例
FSRAMPERCENT=0x80808080
prog ram is 87.5%--------程式記憶體占整個記憶體的比例
FSRAMPERCENT=0x20202020
prog ram is 50%--------程式記憶體占整個記憶體的比例-
FSRAMPERCENT=0x80808010
prog ram is 88%--------程式記憶體占整個記憶體的比例
FSRAMPERCENT=0x10808080
rog ram is 94%--------程式記憶體占整個記憶體的比例
FSRAMPERCENT=0x10101010