关于基于内存映射文件的“外部堆”的可行性分析。

MS_Frank 2009-05-31 11:21:34
众所周知在CE 6.0以前每个进程最多可以使用32M的内存,如果使用更多内存就无能为力了。
但是CE下却有1GB的虚拟地址空间供内存映射文件使用,如果使用内存映射文件技术,将一个外部文件(机器存储空间或存储卡上的文件)映射到虚拟地址空间中。
然后再封装成一个堆类,比如MyHeap,这样就可以使用大于32M的内存的。。

不知道这样做可行性怎么样?
大家帮忙分析一下!!
...全文
90 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
MS_Frank 2009-06-06
  • 打赏
  • 举报
回复
哎,算了,结了。
xmanlin 2009-06-02
  • 打赏
  • 举报
回复
我想这问题MS在windows mobile 6.0上已解决. 一个进程的内存大小真的可以自己指定吗? 什么OS上可以的?
MS_Frank 2009-06-02
  • 打赏
  • 举报
回复
先不考虑性能的因素,如果某些情况下非要用更大的内存呢?
世外涛缘 2009-06-01
  • 打赏
  • 举报
回复
假如进程只能使用32M内存,机器本身有远大于32M的内存,这样可以。
是“假如”,不是“加入”,打错了,不好意思。
世外涛缘 2009-06-01
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 MS_Frank 的回复:]
不过有些时候程序需要的确要使用超过32M的内存啊,如果你要实现某功能,因为内存不够用怎么办?
[/Quote]
那我就要仔细检查内存的使用了,优化内存使用。
楼主想一下,即使成功的用磁盘增加了内存,那程序的性能怎么能忍受?

我认为外部引用内存适用如下情况:
加入进程只能使用32M内存,机器本身有远大于32M的内存,这样可以。

楼主的情况不适用。
MS_Frank 2009-06-01
  • 打赏
  • 举报
回复
自己顶。。。。。。。。。。
MS_Frank 2009-05-31
  • 打赏
  • 举报
回复
不过有些时候程序需要的确要使用超过32M的内存啊,如果你要实现某功能,因为内存不够用怎么办?
世外涛缘 2009-05-31
  • 打赏
  • 举报
回复
内存于存储空间不能同日而语吧,访问的速度差很多。
虚拟内存就是这个原理吧。
个人认为这不可行,一个进程在当前的WM中要占用32M以上的内存,本身就没有任何意义了,谁还会使用这个程序呢?

7,655

社区成员

发帖
与我相关
我的任务
社区描述
Windows Phone是微软发布的一款手机操作系统,它将微软旗下的Xbox LIVE游戏、Zune音乐与独特的视频体验整合至手机中。
社区管理员
  • Windows客户端开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧