2009年4月29日 星期三

轉載PagePool的問與答

轉載自大陸網站 http://www.pdaclan.com/thread-7530-1-1.html


1.什麼是pagepool?

首先需要澄清下,實際上並不存在pagepool實體。Pagepool是windows Mobile系統內置的一個內存管理機制。如果ROM中存在pagepool的話,那麼系統會預先將讀取的數據緩存在Pagepool中,且系統可以釋放已加載在pagepool但沒有使用代碼。而Pagepool大小代表了系統一次可加載多少程序代碼在RAM裡面。也就是說系統可以加載程序代碼大小是受Pagepool大小約束的。有點類似與Win系統中的Page file(頁面緩存)一樣。但是如果ROM裡面沒有Pagepool的話,系統將直接加載代碼到RAM,這樣會提高系統性能。

眾所周知,PPC上的存儲分為ROM和RAM。平常大家所刷的WM6.0 ROM指的就是這部分ROM。Hermes系列的ROM大小為128Mb。RAM就是程序運行的內存,一般為64Mb。如果增加了Pagepool大小,會相應減少程序用RAM大小。同樣,減少pagepool,會釋放出相應空間給程序用RAM。


2.Pagepool大小對系統性能的影響?

是否pagepool越大,系統運行速度越高呢?也有網友說,如果將pagepool容量設置為0Mb,即取消pagepool,代碼直接被加載到 RAM,這樣會提高系統運行速度。但個人認為此法不妥當,不可否認沒有Pagepool,代碼直接加載到RAM的做法會提高系統運行速度,但同樣可能會減 低系統的穩定性。因為一旦程序出錯而又系統無法釋放相應代碼時,就容易造成死機。

很遺憾,我並沒有花時間去製作不同pagepool大小的ROM,並測試其系統運行速度。一是目前手頭沒時間,二是我覺得我的目的並不是想提供個測試數據供網友參考,重點是想說明pagepool的原理,既然有了免費工具可方便更改,自己動手豈不是更有趣。

不過,POF用SPB Benchmark測試了4Mb~16Mb的Pagepool對WM5.0系統性能的影響。這裡借用其測試結果,以供參考。

Pagepool容量 可用程序存儲容量 SPB Benchmark值
4Mb 50.68Mb 347.88
6Mb 48.68Mb 346.03
8Mb 46.67Mb 345.95
12Mb 42.66Mb 348.53
16Mb 39.64Mb 351.26

從上面可以看出,從4Mb到16Mb,pagepool容量越大,可用程序存儲容量是越小的。且pagepool的大小對系統性能的影響並不是想像中的那 麼大。(註:SPB Benchmark值越大越好)。但這只是WM5.0下的測試,有興趣的網友可以測試下WM6.0下的情況。

那麼Pagepool大小到底要設置多少比較合適?Dopod官方英文版WM6.0 ROM的Pagepool大小是6Mb。而該官方版ROM的穩定性是無可非議的,至少這個是我用過ROM中最穩定的,所以6Mb不妨可以作為參考。


3.如何查看ROM的pagepool大小?

Pagepool changer工具可直接查看被加載nbh或OS.nb的pagepool大小。如下圖是加載RUU_signed.nbh文件後,提示該ROM文件的Pagepool大小是6Mb,以及在內存中的偏移值3addd4。

用NBHtool解開RUU_signed.nbh,點此查看如何用NBHtool解nbh文件,然後用pagepool changer加載該Windows.nb(OS.nb),請注意提示pagepool大小是同樣的6Mb,但內存偏移值3abcaa是不一樣的。

也可以採用POF介紹的方法,通過用十六進制編輯軟件,如winhex,直接開打Windows.nb文件來查看。我推薦網友採用這種方法。因為一味靠傻瓜式的工具反而會降低自己的動手能力。

用winhex加載windows.nb,按Ctrl+F搜索」NKKD8〞字符串,如下圖:

找到第二個」NKKD8〞字符串,

然後下拉,尋找FFFF FFFF FFFF FFFF 9B4F FFFF 64B0 0000,該代碼下面一行其中就包括pagepool的內存偏移值,如下圖紅色方框處。

這裡6000代表Pagepool是6Mb。而數字6所在偏移值就是3abcaa,和用工具查看的結果是一致。

1000~9000代表pagepool容量為1~9Mb。

A000~F000代表容量為10Mb~15Mb。

0001代表是16Mb Pagepool。


4.如何更改Pagepool大小?

用pagepool changer加載RUU_signed.nbh或OS.nb,然後可以在下圖左邊紅色框框內選擇擬修改的pagepool大小,或者在右邊紅色方框內自定義大小,1Mb~16Mb。然後點擊」修改」就可以了。

點擊」修改」後,工具會將ROM文件的pagepool容量更改至所設定的大小。狀態欄顯示」已就緒」的話,代表已經修改完畢。


註:本文參考了XDA上POF的帖子和Windows Mobile Blog文章。

覺得不錯請幫按下面廣告一下

沒有留言:

張貼留言