小7的内存讨论一侧

【小7的内存讨论一侧】这篇文章是关于7600内存方面的一点讨论,是我自己使用7600方面之后的一点发现和总结,希望大家有兴趣研究和发掘的能跟我一起探讨 。内容可能有点晦涩,比较适合寻根问底的朋友 。
在7600的手机信息中(友人网页中),关于内存的描述是:内存容量,29MB;堆栈空间:1M(编程相关) 。什么是堆栈空间?针对不怎么熟识编程的朋友,我简单解释一下 。堆栈空间是一个数据存放的空间,但数据的存取方式是先进后出(FILO),打个比方,你最后先放进垃圾桶的东西,你在倒掉通常情况下是倒出来的 。堆栈类似于这样的工作机制 。
但是在实际使用中,我遇到了这样的问题:我通过WAP下载MP3或者是电影的时候,当文件的大小超过1MB的时候,就会提示内存空间不足而导致文件下载失败 。为什么会这样呢?我查找了一些国外的相关网页,也只有及少的描述 。按我个人理解,具体应该是这样的:问题出在那1MB的堆栈空间上面,手机通过无线WAP下载的时侯,所下载的文件都是临时保存在那1MB的堆栈空间里面的,如果文件大小超过1MB的话,那么堆栈空间被撑满,提示内存已满,下载失败 。
你可能会反驳我,为什么用数据线下载没有这个现象呢?需要观察的是:当你用数据线传东西的时候,文件都是直接存在那28MB的共享空间里面的,因此不会出现内存不足 。为什么这样?当你用数据线传东西的时候,手机并不会询问你是否要存储该文件,而是直接存储在那28MB的共享存储空间了 。当你WAP下载的时候,当你可以在手机看到图片或能听MP3的时候,都要询问你是否要存储你下载了的文件,因为这时文件并未真正存储到手机上,而是存在了那1MB的堆栈空间里面了 。
简单的打个不十分恰当的比方,如果把7600当成一台电脑的话,那么那28MB的大小就相当于硬盘空间,那1MB就相当于你内存条的大小 。
1 。无线下载就等于把文件先放在内存上,然后再等你确认之后再存到硬盘上;超过了1MB当然就内存不足了 。受限于堆栈空间大小 。
2 。数据线传输就相当于直接把文件写到硬盘上 。受限于总体内存空间的大小 。
就此打住了,希望你能跟我一起研究我们心爱的小七 。^-^

    推荐阅读