CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
IBM Rational 系统开发最佳实践工具包 WebSphere MQ 最佳实践 TOP 15
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VC/MFC >  进程/线程/DLL

关于内存映射文件的一点小问题?

楼主LEONARD0824()2006-03-03 11:43:33 在 VC/MFC / 进程/线程/DLL 提问

我想制作两个线程,一个负责采集数据,并向数据文件中增加采集到的数据;另一个线程负责读取用户想看到某个时间段内的采样数据。请问,用内存映射文件是最好的办法么?   还是直接用内存缓冲的方法? 问题点数:20、回复次数:9Top

1 楼hollysky(爱神)回复于 2006-03-03 14:40:07 得分 0

FileMapping   在两个进程间共享大的数据的确很好,如果你是在同一个进程里的两条线程,就不必了。  
  另外,File的尺寸可以改变,   FileMapping   的尺寸不可改变。Top

2 楼LEONARD0824()回复于 2006-03-03 17:09:35 得分 0

对阿   ,filemapping有这个问题,要预先定义一个比较大的值,最后对hfile进行截断。  
   
  我想问一点,用createfile得到的hfile句柄向文件写相同大小数据的时间会不会随着文件的增大而增大?  
   
  读取文件相同大小数据的时间呢?Top

3 楼somexing(somexing)回复于 2006-03-06 08:42:35 得分 0

的时间不会随着文件的增大而增大  
   
  Top

4 楼LEONARD0824()回复于 2006-03-06 08:58:30 得分 0

那我想问一下,随着文件的不断增大,我的程序使用的内存是不是也是越来越大?Top

5 楼LEONARD0824()回复于 2006-03-07 15:24:38 得分 0

按理说,应该不会增大的.Top

6 楼babam()回复于 2006-03-07 18:02:19 得分 0

看你的数量级了.  
  上g的话就filemapping好了  
  开的都是虚拟内存.没有什么太大关系.Top

7 楼LEONARD0824()回复于 2006-03-08 14:34:04 得分 0

如果大的话,照babam的说法,我肯定要用filemapping,这样使用的虚拟内存至少要少一半,是么Top

8 楼mythay(小黑)回复于 2006-03-08 16:18:34 得分 0

直接缓冲的好。  
  如果你有以下得情况,建议你是用内存映射  
  1.内存巨大。  
  2.稀疏数据。比如大小为10000的数组,存在有效数据的一般只有其中的2   、30个。  
  3.访问随机性不大。如果数据访问的随机性大,页面调入调出也需要占cpu时间。  
  如果不是一次全部映射,要设计一种算法以使访问效率最高。  
  虚拟内存至少要少一半得说法是不对的,具体原因参照《核心编程〉Top

9 楼Oversense(步步文)回复于 2006-03-08 16:38:25 得分 0

filemap   太大也会出问题Top

相关问题

  • 内存映射文件
  • 内存映射文件的问题
  • 内存映射文件的问题
  • 关于内存映射文件
  • 关于“内存映射文件”讨论
  • 有关内存映射文件操作
  • 文件映射内存共享问题
  • 内存映射
  • 关于VC内存映射文件,菜鸟提问!
  • 有关虚拟内存和文件映射

关键词

  • 内存
  • 映射
  • 文件
  • 数据
  • 线程
  • 虚拟
  • filemap
  • 增大
  • 问题
  • 大小

得分解答快速导航

  • 帖主:LEONARD0824

相关链接

  • Visual C++类图书
  • Visual C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo