社区
C++ 语言
帖子详情
内存映射问题???
quwei197874
2011-06-14 03:44:11
现有许多小文件(两三千),每个文件都中有两个相同的结构体,struct1,struct2,只是 每个文件中结构体中数据个数差很多,(例如在文件一中struct1里的数组只有一个值,文件二相同数组可能有几百个值)。
我要把这些小文件全部映射到内存中,并把所有struct1合并到一起,所有struct2合并到一起。
感觉上面做法理论上是可行的,不过由于文件都是动态大小的,不知具体应该怎么处理,请帮帮忙,提提意见也好。
...全文
83
9
打赏
收藏
内存映射问题???
现有许多小文件(两三千),每个文件都中有两个相同的结构体,struct1,struct2,只是 每个文件中结构体中数据个数差很多,(例如在文件一中struct1里的数组只有一个值,文件二相同数组可能有几百个值)。 我要把这些小文件全部映射到内存中,并把所有struct1合并到一起,所有struct2合并到一起。 感觉上面做法理论上是可行的,不过由于文件都是动态大小的,不知具体应该怎么处理,请帮帮忙,提提意见也好。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
9 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
Louistao
2011-06-14
打赏
举报
回复
内存映射..菜鸟第一次听说,马克
ryfdizuo
2011-06-14
打赏
举报
回复
内存映射一般是几百兆甚至G级别。你的问题STL容器就可以胜任。
就想叫yoko
2011-06-14
打赏
举报
回复
逐个读取文件 解析里面的数据 分别插入到你 struct1 和 struct2 类型的数组或链表中
qq120848369
2011-06-14
打赏
举报
回复
你是想合并到一起,还是想读到内存里整理一下.
如果只是想合并起来,那么建第三个文件,逐个放进去就可以了.
quwei197874
2011-06-14
打赏
举报
回复
我要做一个测试工具,不用考虑内存,效率什么的。
pathuang68
2011-06-14
打赏
举报
回复
[Quote=引用 3 楼 healer_kx 的回复:]
每个文件的大小是多少?大约的?1K以内吗?
如果2000-3000的话,都读到内存里面,估计会有10M不到的内存消耗哦。
但是不管怎么说,你要做的事情,不适合用内存映射文件了。
[/Quote]
++
内存映射适合处理单个文件很大的情况,而不是适合处理文件个数很多而每个文件都不大的情况。
楼主的问题,直接操作硬盘上的文件就很好,用不着内存映射。
healer_kx
2011-06-14
打赏
举报
回复
每个文件的大小是多少?大约的?1K以内吗?
如果2000-3000的话,都读到内存里面,估计会有10M不到的内存消耗哦。
但是不管怎么说,你要做的事情,不适合用内存映射文件了。
bdmh
2011-06-14
打赏
举报
回复
不要把所有的数据都读到内存,如果太大,很可能引起当机,可以指定一个大小,比如,100m,每次加载一个文件(如果太大,可以对一个文件分段读取),然后写到内存中,下一个接着上一个写,当容量到达100m时,把这个内容写到文件,然后用内存映射,指到文件尾巴,继续读取写入,依次循环
c_losed
2011-06-14
打赏
举报
回复
也可以考虑读取结构体内容到容器
在容器里进行操作
Linux C/C++
内存映射
文章目录一、什么是
内存映射
??二、
内存映射
的优势三、a,b通信代码实现(Linux)四、父子进程通信代码实现(Linux)五、匿名映射代码实现(Linux)六、文件映射进行拷贝代码实现(Linux)
内存映射
注意实现以及面试常见题 ...
I/O映射和
内存映射
CPU对外设IO端口物理地址的编址方式有两种:一种是I/O映射方式(I/O-mapped),另一种是
内存映射
方式(Memory-mapped)。而具体采用哪一种则取决于CPU的体系结构。 有些体系结构的CPU(如,
共享内存和
内存映射
的区别
1.共享内存可以直接创建,
内存映射
需要磁盘文件(匿名映射除外) 2.共享内存效果更高 3.内存 所有的进程操作的是同一块共享内存。
内存映射
,每个进程在自己的虚拟地址空间中有一个独立的内存。 4.数据安全 - 进程...
内存映射
原理
内存映射
原理 物理地址空间 处理器在系统总线上看到的地址。 使用RISC(Reduced Instruction Set Computer RISC 精简指令集)的处理器通常只实现一个物理地址空间,外围设备和物理内存使用统一的物理地址空间。...
【计算机操作系统】虚拟内存是什么?分页系统地址映射?页面置换算法有哪些?分段地址映射又是什么?
分页系统地址映射?页面置换算法有哪些?分段地址映射又是什么? 1.虚拟内存是什么? 虚拟内存的目的是为了让物理内存扩充成更大的逻辑内存,从而让程序获得更多的可用内存; 为了更好的管理内存,操作系统将内存...
C++ 语言
64,648
社区成员
250,476
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章