揭开P930内存大小的真相
在坛子上看了很多人的文章,都对P930的内存太小不满,而且大部分都都归结于联想设计人员把D盘的大小设的太大了,大大占用了系统运行内存的大小.我一开始还是比较赞同这个观点,不过今日由于需要对Symbian开发,于是对Symbian核心进行了一番研究,发现大家之前的观点并不尽然.
Symbian作为现代操作系统,支持多任务同时运行,必不可缺的就是MMU(内存管理单元),而MMU最大的用处就是提供虚拟地址到实地址的转换,使得在多任务环境中,很好的保护了其他任务的数据和代码.在Symbian的用户模式下,是不能直接访问实际物理内存的.需要通过MMU进行内存转换.而Symbian在MMU的基础上,引入了Symbian的内存块的概念,为RChunk对象,无论是系统的Stack/heap抑或是code区,都是以RChunk为单元分配的.而所谓RAM文件系统,也是建立在RChunk的基础上了.
Symbian启动的过程中,由bootloader到Ekern的过程中,就初始化了Ramdisk,我们可以通过RChunk的遍历接口发现Ekern下有一个为EKern::RamDiskDriver的RChunk对象,大小为1XXK左右,里面存放了就是系统初始化下的D盘中的数据.
在Symbian:Internal这本书中,提到,系统Ekern初始化中,需要初始化RamDIsk并且把一些RAMDISK初始化中需要的文件结构保存进去.这样来看,RAMDisk并不像Windows系统中的RAMDisk,是一次性Alloc内存的,而是在使用过程中增大的.一开始只占用了1XX多K的ram,随着你使用D盘文件的增加,占用的ram也越来越多.看到这里,也许很多人会问,那么D盘显示的XXXXKb的大小又是怎么来的,这个问题其实也困惑了我不少时间,后来通过实验才相同,这个大小是通过计算max(D盘当前内存,可用运行内存)来确定的.在Nokia的手机中,为了防止用户过量使用ramdisk而使得运存减少,使用了max(D盘当前内存,min(可用运行内存,D盘设定值))来确定D盘的大小,而Lenovo就没有这种限制了,这种限制的好坏也说不上,有好处也有坏处.但这不能算是Lenovo的设计失误.
如果不相信的话,可以做个实验,把一个2M的文件考入D盘中,然后运行大量的软件,打开fileman和appman,就会发现,可用的内存与D盘大小不能,可能运存没有了,D盘最大容量却还是那个值.
看到这里,你大概明白了我的意思,D盘的大小并不影响运行内存的多少,就算是D盘为1000M,只要没用放东西进去,那么就不会消耗内存的值,那么或许有人会问题,那为什么6681,6680有8M多的内存,而我们只有5M呢,哦,这个问题解释起来也不难,P930多了一块外屏,多了176x12的主屏的空间需要自己的WindowsServer来绘制,所以就需要更多内存来存放缓冲,这就占用了更多的内存.而且现在6680,6681为了取得大内存,使用fontroute屏蔽了ROM字体,而fontrouter暂时不支持P930屏蔽Rom字体,fontroute2可能支持,不过还在内测中.而传闻说6680是20M的ROM,而我们的P930才16M,所以少了运存也很正常.
说些题外话,P930的设计还是不错的,毕竟使用的195Mhz的OMAP730 ,和Nokia使用的OMAP1710还是有很大距离的性能差距了,差不多少了一般多的MIPS.基本平台的不相同也导致了很多软件不能使用,不过Symbian上的大部分常用软件都能使用,所以,还是物有所值的,如果外观和质量稍微好一点的话,那就更物超所值了.
推荐阅读
- 再谈夏新 E8的用户内存
- iPhone11pro max怎么清理内存
- 手机内存不足怎么清理
- 华为手机如何查看内存
- 乐视乐1s手机支持TF内存卡扩展吗
- 努比亚红魔3S内存多大
- 附换卡/剪卡指南 中兴天机AXON手机SIM/TF内存卡卡安装图文详解
- 华为g7 plus手机SIM卡/TF内存卡安装真机图文详解
- 华为nova3中清除运行内存具体操作步骤
- 诺基亚Nokia手机内存不足解决办法