关于3618/6618动态内存的储存效率

以下是在论坛上的交流内容:
ROLAND 2003-03-25 16:20
除了文件占用的最小空间的问题,还有个存储效率(或者说内存利用率)的问题,不信你统计一下,你在内存存了100K的文件,但实际占用的空间可能会达到130K,这么大的误差肯定不是“扇区”或者“镞”能解释的了,其实在硬盘存储上也有类似的存储效率问题,这跟文件系统有很大关系,比如,NTFS就要比FAT16的效率高得多,存储上的浪费就小得多 。
长公子威 2003-03-25 16:33
你说的有些道理,FAT32等是要比FAT16的效率高得多,就是因为它的簇划分的小,固定为4K,其实我的文章只要把扇区换成簇就可以了,误差可能是因为碎片引起的 。时间长了,把动态内存的东西导出再导入,应该可以解决 。
决定自己做下试验,以我手机动态内存的使用情况为例:
一、在手机中,查看动态内存使用,总数为348K,剩余为242K,得知已使用106K 。
二、打开手机工作室,用浏览器项查看各个文件占用内在情况:
1、Address book(通讯录)中:19825Bytes文件一个,640Bytes文件一个,1935Bytes文件一个,用我“Siemens3618/6618各种容量彻底研究”一文中的方法,可知占用22.5K空间 。
2、Bitmap(待机画面和屏保):共有800Bytes左右文件八个,可知占用8K空间 。
3、Ringing tone(铃声文件):不足512Bytes的文件20个,512-1024Bytes的文件14个,1024-1536Bytes的文件1个,可知占用25.5K空间 。
4、Sms(短消息):不足512Bytes的文件5个,512-1024Bytes的文件1个,可知占用3.5K空间 。
5、eBook(电子书):不足512Bytes的文件1个,1024-1536Bytes的文件4个,可知占用6.5K空间 。
6、Games(自设文件夹,存有三个小游戏):KNIGHT:(包括本身文件夹)占用13K空间;ROCK:(包括本身文件夹)占用8.5K空间;TOWER:(包括本身文件夹)占用9.5K空间,共31K 。
7、总计:包括6个根下的文件夹,总共占用100K 。与查看的已使用的106K相差6K 。
三、把动态内存中的内容全部导出到硬盘,把通讯录内容也备份到硬盘,然后全部删除 。先删文件,再依次删除文件夹,把动态内存中除Address book文件夹外的内容全部删除,查看动态内存,剩余为347K,可知清空的Address book文件夹占有1K的空间,清空的Address book文件夹也要备份到硬盘 。
四、格式化动态内存后,将原有的内容依次导入 。查看动态内存使用,总数为348K,剩余为246K,得知已使用102K,找出4K 。
五、结论:100K的文件内容占用102K的动态内存空间,98%的使用率,不能说是使用效率低!西门子在3618/6618还包括2128中的动态内存,所划分的“簇”的大小是0.5K,已经是很小的数值了,不能奢忘它以Bytes来划分 。
此外,在手机工作室中,直接显示的空间占用情况,没有考虑到内存分配“簇”的大小,只是简单的把文件相加的结果,结果当然不准确!
例如: 手机工作室显示:Bitmap/文件夹信息/ 8个文件/ 空间: 6 KB 。大家知道一个待机画面是BMP位图格式101*46,每个大小是800Bytes左右,用我“Siemens3618/6618各种容量彻底研究”一文中的方法,占用应该是8K,实际情况也是如此,大家可以试验 。

    推荐阅读