TOM快跑综合论坛

首页 » IT版块 » TOM快跑---手机&PDA » wm5和wm6 pagepool的修改方法,多大的pp适合你??
我爱多普达 - 2007-5-7 21:22:00
(5.7更新-重大发现)wm5和wm6 pagepool的修改方法,多大的pp适合你?? H{Ý»ñ¾ÿbbs.tomrun.net‘3ÛV9 &“œ
H{Ý»ñ¾ÿbbs.tomrun.net‘3ÛV9 &“œ
5月7日,重大发现: H{Ý»ñ¾ÿbbs.tomrun.net‘3ÛV9 &“œ
这几天一直在研究windows mobile的内存体系,查阅了xda-developer和msmobiles的若干资料,发现pagepool在windows mobile的运行中的作用是这样的: H{Ý»ñ¾ÿbbs.tomrun.net‘3ÛV9 &“œ
windows mobile会将程序的代码载入pagepool,这个程序在分配自己的内存的时候(比如加载数据时)在剩余的ram中分配相应的内存空间。所以一个过小的pagepool会严重影响系统性能,因为在将程序的代码加载入pagepool的时候,如果pagepool中间剩余的空间过小,windows mobile会首先在pagepool中清理出一块内存,然后再将代码载入到pagepool,这也就是为什么4m pp和8m pp的情况下,运行速度会有比较大差异的原因。 H{Ý»ñ¾ÿbbs.tomrun.net‘3ÛV9 &“œ
H{Ý»ñ¾ÿbbs.tomrun.net‘3ÛV9 &“œ
但是在msmobile上还看到这样一段解释:如果系统中没有pagepool,windows mobile会将代码直接载入到内存,在xda-developer上也有人提到,将pagepool大小设置为0,系统会“super fast&super stable" H{Ý»ñ¾ÿbbs.tomrun.net‘3ÛV9 &“œ
H{Ý»ñ¾ÿbbs.tomrun.net‘3ÛV9 &“œ
所以我自己做了一个rom,将pagepool大小设置为0,刷到了我的830上。。。。 H{Ý»ñ¾ÿbbs.tomrun.net‘3ÛV9 &“œ
H{Ý»ñ¾ÿbbs.tomrun.net‘3ÛV9 &“œ
结果。。。。 H{Ý»ñ¾ÿbbs.tomrun.net‘3ÛV9 &“œ
H{Ý»ñ¾ÿbbs.tomrun.net‘3ÛV9 &“œ
发现速度不是一般的快!!!!!!!! H{Ý»ñ¾ÿbbs.tomrun.net‘3ÛV9 &“œ
H{Ý»ñ¾ÿbbs.tomrun.net‘3ÛV9 &“œ
程序几乎都是即点即出,,几乎没有什么停顿,,,比12M pp的反应速度还要快!!!!!!! H{Ý»ñ¾ÿbbs.tomrun.net‘3ÛV9 &“œ
H{Ý»ñ¾ÿbbs.tomrun.net‘3ÛV9 &“œ
H{Ý»ñ¾ÿbbs.tomrun.net‘3ÛV9 &“œ
======================================= H{Ý»ñ¾ÿbbs.tomrun.net‘3ÛV9 &“œ
xbeta的wm6 rom pagepool太小了,我看了下,才4M,这样虽然可用内存大了点,但是运行速度不快,是否可以考虑将pp增大到8M或者10M?我自己改了个10Mpp的rom,感觉速度快了很多 H{Ý»ñ¾ÿbbs.tomrun.net‘3ÛV9 &“œ
H{Ý»ñ¾ÿbbs.tomrun.net‘3ÛV9 &“œ
具体修改方法是这样的,请用一个16进制编辑器编辑nb文件,跳转到378552(16进制)这个地址,你可以看到40 00这个值,这个就是pp的大小,可以修改成80 00(8M),A0 00(10M),C0 00(12M),修改完保存就可以开刷了 H{Ý»ñ¾ÿbbs.tomrun.net‘3ÛV9 &“œ
H{Ý»ñ¾ÿbbs.tomrun.net‘3ÛV9 &“œ
不清楚的朋友请看图,A0 00 就是修改10M pp的地方 H{Ý»ñ¾ÿbbs.tomrun.net‘3ÛV9 &“œ
H{Ý»ñ¾ÿbbs.tomrun.net‘3ÛV9 &“œ
H{Ý»ñ¾ÿbbs.tomrun.net‘3ÛV9 &“œ
有的朋友问如何修改wm5的pagepool,,,也很简单,用16进制编辑器打开nba文件(nbf转换成nba可以参考网上资料),跳转到3EC8AE(16进制)这个地址,原版的pagepool大小是C0 00(12M),具体看图,我改的是60 00 (6M) H{Ý»ñ¾ÿbbs.tomrun.net‘3ÛV9 &“œ
H{Ý»ñ¾ÿbbs.tomrun.net‘3ÛV9 &“œ
我个人刷过6M pp和12M pp的wm5和4M pp,10M pp和12M pp的wm6,个人感觉pp小的话,虽然可用内存比较高,但是机器的运行速度会比较缓慢,而且内存用的会比较快,所以如果要改pp大小的话,个人认为8-12M的pp是合适的,可以兼顾速度和可用内存,我自己刷了12Mpp的wm6,感觉速度确实快了很多。 H{Ý»ñ¾ÿbbs.tomrun.net‘3ÛV9 &“œ
H{Ý»ñ¾ÿbbs.tomrun.net‘3ÛV9 &“œ
注意: 修改pp大小务必要细心!!!我第一次修改pp大小,不慎将60 00改成了06 00,结果刷出来的wm5运行极为缓慢,并且无法解锁rapi!!只有三色屏下刷回原版aku2.2 wwe(我是830) H{Ý»ñ¾ÿbbs.tomrun.net‘3ÛV9 &“œ
H{Ý»ñ¾ÿbbs.tomrun.net‘3ÛV9 &“œ
以下资料引用于xda-developer:http://forum.xda-developers.com/showthread.php?t=295932 H{Ý»ñ¾ÿbbs.tomrun.net‘3ÛV9 &“œ
H{Ý»ñ¾ÿbbs.tomrun.net‘3ÛV9 &“œ
4Mb pp  可用内存50.68 Mb. 6Mb pp  可用内存48.68 Mb. 8Mb pp  可用内存46.67 Mb. 12Mb pp  可用内存42.66 Mb. 16Mb pp  可用内存39.64 Mb. H{Ý»ñ¾ÿbbs.tomrun.net‘3ÛV9 &“œ
H{Ý»ñ¾ÿbbs.tomrun.net‘3ÛV9 &“œ
--本帖首发于xbeta.cn H{Ý»ñ¾ÿbbs.tomrun.net‘3ÛV9 &“œ
我爱多普达 - 2007-5-7 21:35:00
What is the Page Pool? H{Ý»ñ¾ÿbbs.tomrun.net‘3ÛV9 &“œ
H{Ý»ñ¾ÿbbs.tomrun.net‘3ÛV9 &“œ
Quoting mamaich: H{Ý»ñ¾ÿbbs.tomrun.net‘3ÛV9 &“œ
The large the paging pool is, the more code pages can present in RAM simultaneously -> the less loads from slow ROM -> the faster the device is. H{Ý»ñ¾ÿbbs.tomrun.net‘3ÛV9 &“œ
H{Ý»ñ¾ÿbbs.tomrun.net‘3ÛV9 &“œ
Quoting Mike Calligaro from Windows Mobile Team Blog: H{Ý»ñ¾ÿbbs.tomrun.net‘3ÛV9 &“œ
In general terms, there are a number RAM uses that aren't reported in the Memory CPL. H{Ý»ñ¾ÿbbs.tomrun.net‘3ÛV9 &“œ
H{Ý»ñ¾ÿbbs.tomrun.net‘3ÛV9 &“œ
For instance, an OEM might set aside a fair amount of RAM to allow the camera to write directly into it without using the CPU (a DMA buffer). Typically the way they do that is to tell the system there is less than the available RAM and then use the RAM the system doesn't know about. H{Ý»ñ¾ÿbbs.tomrun.net‘3ÛV9 &“œ
H{Ý»ñ¾ÿbbs.tomrun.net‘3ÛV9 &“œ
Another example is something called the "page pool." This is similar to the "page file" on a desktop system, and is heavilly used on NAND systems. The page pool isn't something a user can configure, so there's not much point in showing it in the Memory CPL. H{Ý»ñ¾ÿbbs.tomrun.net‘3ÛV9 &“œ
H{Ý»ñ¾ÿbbs.tomrun.net‘3ÛV9 &“œ
Code that can't be shut down or paged out, especially drivers, isn't shown on that Memory CPL either. There's no reason to show you the RAM the display driver is using, because you can't do anything about it. H{Ý»ñ¾ÿbbs.tomrun.net‘3ÛV9 &“œ
H{Ý»ñ¾ÿbbs.tomrun.net‘3ÛV9 &“œ
Applications use RAM in two ways. There is code that runs, and there is data that is created while it is running. On a NOR device, the code can run directly from the ROM and not be loaded into RAM first. This process is called XIP (eXecute In Place). NAND devices can't XIP, so their code is loaded into RAM and executed from there. If you don't have a Page Pool, this code is loaded into normal RAM. The Page Pool is a mechanism to limit how much code is loaded into normal RAM. With a Page Pool, we can unload code that hasn't been used in a while and reload it later if we need to. We can't do that without a Page Pool. H{Ý»ñ¾ÿbbs.tomrun.net‘3ÛV9 &“œ
H{Ý»ñ¾ÿbbs.tomrun.net‘3ÛV9 &“œ
More information: H{Ý»ñ¾ÿbbs.tomrun.net‘3ÛV9 &“œ
http://forum.xda-developers.com/showthread.php?t=276630 H{Ý»ñ¾ÿbbs.tomrun.net‘3ÛV9 &“œ
http://blogs.msdn.com/windowsmobile/...17/494177.aspx H{Ý»ñ¾ÿbbs.tomrun.net‘3ÛV9 &“œ
http://blogs.msdn.com/windowsmobile/...19/453784.aspx H{Ý»ñ¾ÿbbs.tomrun.net‘3ÛV9 &“œ
H{Ý»ñ¾ÿbbs.tomrun.net‘3ÛV9 &“œ
H{Ý»ñ¾ÿbbs.tomrun.net‘3ÛV9 &“œ
How to find the page pool offset on Hermes ROMs? H{Ý»ñ¾ÿbbs.tomrun.net‘3ÛV9 &“œ
Take the Hex editor of your choice (I use radare) and open OS.nb. H{Ý»ñ¾ÿbbs.tomrun.net‘3ÛV9 &“œ
Search the ASCI string "NKKD8", you'll find it two times, take the one more near to the end of the file. H{Ý»ñ¾ÿbbs.tomrun.net‘3ÛV9 &“œ
Scroll down a bit until you find the HEXA string "64 00 00 00", page pool should be around there. H{Ý»ñ¾ÿbbs.tomrun.net‘3ÛV9 &“œ
If anyone knows a better method please explain H{Ý»ñ¾ÿbbs.tomrun.net‘3ÛV9 &“œ
H{Ý»ñ¾ÿbbs.tomrun.net‘3ÛV9 &“œ
Example using OS.nb from WM6 ROM for hermes H{Ý»ñ¾ÿbbs.tomrun.net‘3ÛV9 &“œ
We find the second "NKKD8" at offset 0x3B6C90: H{Ý»ñ¾ÿbbs.tomrun.net‘3ÛV9 &“œ
H{Ý»ñ¾ÿbbs.tomrun.net‘3ÛV9 &“œ
H{Ý»ñ¾ÿbbs.tomrun.net‘3ÛV9 &“œ
Code: H{Ý»ñ¾ÿbbs.tomrun.net‘3ÛV9 &“œ
    offset      0 1  2 3  4 5  6 7  8 9  A B  C D  E F  0123456789ABCDEF H{Ý»ñ¾ÿbbs.tomrun.net‘3ÛV9 &“œ
----------------+----------------------------------------+----------------. H{Ý»ñ¾ÿbbs.tomrun.net‘3ÛV9 &“œ
00000000003B6C90 4E4B 4B44 3800 0000 0000 0005 0000 0000 |NKKD8...........| H{Ý»ñ¾ÿbbs.tomrun.net‘3ÛV9 &“œ
00000000003B6CA0 00C8 FFFF 8039 2D80 4060 2880 B069 2880 |.....9-.@`(..i(.| H{Ý»ñ¾ÿbbs.tomrun.net‘3ÛV9 &“œ
00000000003B6CB0 B869 2880 AC69 2880 144A 0180 805D 2D80 |.i(..i(..J...]-.| H{Ý»ñ¾ÿbbs.tomrun.net‘3ÛV9 &“œ
00000000003B6CC0 602A 2D80 1829 0080 0000 0000 0000 0000 |`*-..)..........| H{Ý»ñ¾ÿbbs.tomrun.net‘3ÛV9 &“œ
Further down we can find this: H{Ý»ñ¾ÿbbs.tomrun.net‘3ÛV9 &“œ
H{Ý»ñ¾ÿbbs.tomrun.net‘3ÛV9 &“œ
Code: H{Ý»ñ¾ÿbbs.tomrun.net‘3ÛV9 &“œ
    offset      0 1  2 3  4 5  6 7  8 9  A B  C D  E F  0123456789ABCDEF H{Ý»ñ¾ÿbbs.tomrun.net‘3ÛV9 &“œ
----------------+----------------------------------------+----------------. H{Ý»ñ¾ÿbbs.tomrun.net‘3ÛV9 &“œ
00000000003B6F40 581D 0480 C41C 0480 BC1C 0480 00B0 0400 |X...............| H{Ý»ñ¾ÿbbs.tomrun.net‘3ÛV9 &“œ
00000000003B6F50 FFFF FFFF FFFF FFFF 9B4F FFFF 64B0 0000 |.........O..d...| H{Ý»ñ¾ÿbbs.tomrun.net‘3ÛV9 &“œ
00000000003B6F60 6400 0000 A85B 0480 0000 6000 0000 0000 |d....[....`.....| H{Ý»ñ¾ÿbbs.tomrun.net‘3ÛV9 &“œ
00000000003B6F70 38E8 0180 C43C 0280 DC6B 0180 00B0 0380 |8....<...k......| H{Ý»ñ¾ÿbbs.tomrun.net‘3ÛV9 &“œ
00000000003B6F80 882D 0280 FC2C 0280 D488 0480 5489 0480 |.-...,......T...|So, we can see the page pool is at offset 0x3B6F6B and is set to 6 Mb. H{Ý»ñ¾ÿbbs.tomrun.net‘3ÛV9 &“œ
H{Ý»ñ¾ÿbbs.tomrun.net‘3ÛV9 &“œ
The pagepool value is specified in HEXA, so for example: H{Ý»ñ¾ÿbbs.tomrun.net‘3ÛV9 &“œ
Change "6000" to "4000" for a 4Mb paging pool H{Ý»ñ¾ÿbbs.tomrun.net‘3ÛV9 &“œ
Change "6000" to "8000" for a 8Mb paging pool H{Ý»ñ¾ÿbbs.tomrun.net‘3ÛV9 &“œ
Change "6000" to "C000" for a 12Mb paging pool H{Ý»ñ¾ÿbbs.tomrun.net‘3ÛV9 &“œ
Change "6000" to "F000" for a 16Mb paging pool H{Ý»ñ¾ÿbbs.tomrun.net‘3ÛV9 &“œ
H{Ý»ñ¾ÿbbs.tomrun.net‘3ÛV9 &“œ
Finding the best page pool size H{Ý»ñ¾ÿbbs.tomrun.net‘3ÛV9 &“œ
H{Ý»ñ¾ÿbbs.tomrun.net‘3ÛV9 &“œ
The page pool size is a compromise between memory available to programs and speed. On WM6 ROM: H{Ý»ñ¾ÿbbs.tomrun.net‘3ÛV9 &“œ
With 4Mb page pool we get a Total Program Memory available of 50.68 Mb, and SPB Benchmark index 347.88. H{Ý»ñ¾ÿbbs.tomrun.net‘3ÛV9 &“œ
With 6Mb page pool we get a Total Program Memory available of 48.68 Mb, and SPB Benchmark index 346.03. H{Ý»ñ¾ÿbbs.tomrun.net‘3ÛV9 &“œ
With 8Mb page pool we get a Total Program Memory available of 46.67 Mb, and SPB Benchmark index 345.95. H{Ý»ñ¾ÿbbs.tomrun.net‘3ÛV9 &“œ
With 12Mb page pool we get a Total Program Memory available of 42.66 Mb, and SPB Benchmark index 348.53. H{Ý»ñ¾ÿbbs.tomrun.net‘3ÛV9 &“œ
With 16Mb page pool we get a Total Program Memory available of 39.64 Mb, and SPB Benchmark index 351.26. H{Ý»ñ¾ÿbbs.tomrun.net‘3ÛV9 &“œ
H{Ý»ñ¾ÿbbs.tomrun.net‘3ÛV9 &“œ
I attach the SPB benchmark results, so anyone can take its conclusions H{Ý»ñ¾ÿbbs.tomrun.net‘3ÛV9 &“œ
1
查看完整版本: wm5和wm6 pagepool的修改方法,多大的pp适合你??