在物理内存不足的情况下使用内存映射文件进行大内存操作
来源:互联网 发布:淘宝联盟app返利 编辑:程序博客网 时间:2024/05/29 04:07
我们在写程序的过程中常常会出现程序需要占用大量内存,但是系统物理内存中根本不存在那么多的内存空间。这个时候我们一般可以考虑使用以下技术来解决问题:
虚拟内存技术:
虚拟内存技术是根据系统页面文件(pagefile.sys)进行页面交换达到切换内存的目的。但是究其本质,我们会发现,虚拟内存技术本质上还是通过对页面文件的交换达到提高物理内存的使用效率问题。
目前在这里先不详谈虚拟内存使用技术。
内存映射文件技术:
内存映射文件技术是通过将文件内容映射到内存空间中,从而实现以下三种目的:
那么,我们在这里介绍内存映射文件主要是对目的2来满足我们在物理内存不足的情况下完成内存的使用。
内存映射文件的基本使用步骤如下:
- 虚拟内存技术
- 内存映射文件技术
虚拟内存技术:
虚拟内存技术是根据系统页面文件(pagefile.sys)进行页面交换达到切换内存的目的。但是究其本质,我们会发现,虚拟内存技术本质上还是通过对页面文件的交换达到提高物理内存的使用效率问题。
目前在这里先不详谈虚拟内存使用技术。
内存映射文件技术:
内存映射文件技术是通过将文件内容映射到内存空间中,从而实现以下三种目的:
- 加载和执行DLL或EXE程序;
- 不使用文件系统IO和缓存来访问磁盘上的数据文件;
- 进程之间相互进行通信;
那么,我们在这里介绍内存映射文件主要是对目的2来满足我们在物理内存不足的情况下完成内存的使用。
内存映射文件的基本使用步骤如下:
- 创建/打开一个文件。CreateFile
- 在这个文件上创建一个文件映射内核对象。CreateFileMapping
- 将文件映射内核对象的全部或者部分映射到当前进程的进程空间中。MapViewOfFile
- 步骤3会得到内存指针,直接操作指针即可。
- 在退出前从内存空间中撤销文件映射内核对象的映射。UnmapViewOfFile
- 关闭文件映射内核对象。CloseHandle
- 关闭数据文件。CloseHandle
0 0
- 在物理内存不足的情况下使用内存映射文件进行大内存操作
- 在windows 下进行内存文件映射的相关函数
- 在win32下使用内存映射文件
- linux系统maclloc大内存的方法(超过物理内存的大小)
- oracle 在不同平台使用大内存
- 在linux中使用内存映射(mmap)操作文件
- Windows(x86)下大内存的分配
- 在linux中使用内存映射(mmap)操作文件的方法
- ORACLE 使用大内存
- 大内存使用
- 【DATAGUARD】物理dg在主库丢失归档文件的情况下的恢复(七)
- Oracle10G内存参数调整以及使用大内存
- ORCALE10G内存参数调整以及使用大内存
- 知识收藏-使用内存映射操作文件的步骤
- linux中使用内存映射(mmap)操作文件的方法
- Linux的内存机制:cache,buffer,swap(物理内存充足的情况下,swap区使用量大于0?!)
- 使用NIO来操作文件,内存映射
- 内存映射文件的使用
- Windows的各种扩展名详解
- linux配置java环境变量
- 使用UINib类来提高加载Nib文件的效率
- I2C总线时序
- audio 层次结构//播放mp3过程
- 在物理内存不足的情况下使用内存映射文件进行大内存操作
- 黑马程序员--java基础--网络编程
- 关于VC出现 0x0C150002 错误的原因以及解决方案
- Java线程(四):Timer和TimerTask
- 3.在线手册速查
- Cscope的使用(领略Vim + Cscope的强大魅力)
- WMI监视进程启动
- 联合体
- Java开发网站总结——Servlet实现图片上传、验证码实现