社区
Java SE
帖子详情
删除内存映射的文件
wargrey
2007-10-05 09:35:05
本人写了一个测试各种复制文件方法性能的程序,要求在每个方法结束时会删除复件,但是发现通过内存映射复制的文件不易删除。本人暂时采取的方法是将通道关闭,映射缓冲区置null并System.gc()。不知各位有没有其他更好的建议。
...全文
97
回复
打赏
收藏
删除内存映射的文件
本人写了一个测试各种复制文件方法性能的程序,要求在每个方法结束时会删除复件,但是发现通过内存映射复制的文件不易删除。本人暂时采取的方法是将通道关闭,映射缓冲区置null并System.gc()。不知各位有没有其他更好的建议。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
易语言
内存映射
大
文件
易语言
内存映射
大
文件
源码,
内存映射
大
文件
,创建映射,打开
文件
_,取颗粒数,映射内存,读基址,释放内存,关闭
文件
_,写入字节集,移动读写位置_,读位置指针,
删除
字节集,十六到十,映射_创建,API_取
文件
长度,API_打开
文件
,API_关闭
文件
,CreateFile,关闭句柄,映射_置内
易语言
内存映射
类模块
易语言
内存映射
类模块源码,
内存映射
类模块,创建映射,打开
文件
_,取颗粒数,映射内存,读基址,释放内存,关闭
文件
_,写入字节集,移动读写位置_,读位置指针,
删除
字节集,映射_创建,关闭句柄,映射_置内存,写字节集,映射_释放内存,API_读字节集内存,取低层平台信息_,api
Linux系统编程第3期:
文件
IO缓存与
内存映射
本课程是《嵌入式工程师自我修养》自学教程第 3 步:Linux系统编程第03期。主要分析Linux
文件
I/O缓存机制:包括页缓存、用户空间的I/O缓存、
内存映射
机制等。
trivial-mmap:一个提供易于使用的 API 来处理
内存映射
文件
的库
平凡的MMAP Trivial-MMAP 是一个 Common Lisp 库,旨在提供一个高级的、易于使用的 API 来处理
内存映射
文件
。 该库导出以下符号: mmap-file一个将
文件
映射到内存并返回一个包含指向
内存映射
文件
的指针以及其他元数据的对象的函数; munmap-file从内存中
删除
内存映射
munmap-file的函数; mmap-read-char一个辅助函数,有助于从
内存映射
文件
中读取字符; mmap-read-byte一个辅助函数,用于从
内存映射
文件
中读取一个字节; with-mmap-file一个帮助宏,可确保在我们完成
内存映射
文件
后安全地取消映射(使用munmap-file函数)。 另外,下面是处理mmap-file函数返回的
内存映射
文件
对象的谓词和访问器函数的导出符号: mmapped-file-p一个谓词函数,如果变量是
内存映射
文件
对象则返回真
疯狂内核之——Linux虚拟内存
目录 第一章 Linux底层分段分页机制 5 1.1 基于x86的Linux分段机制 5 1.2 基于x86的Linux分页机制 7 1.2.1 页全局目录和页表 8 1.2.2 线性地址到物理地址 10 1.2.3 线性地址字段处理 13 1.2.4 页表处理 15 1.3 扩展分页与联想存储器 20 1.4 Linux内存布局 21 1.5 内核空间和用户空间 23 1.5.1 初始化临时内核页表 24 1.5.2 永久内核页表的初始化 32 1.5.3 第一次进入用户空间 41 1.5.4 内核映射机制实例 44 1.6 固定映射的线性地址 48 1.7 高端内存内核映射 50 1.8.1 永久
内存映射
50 1.8.2 临时内核映射 55 第二章 内核级内存管理系统 58 2.1 Linux页面管理 58 2.1.1 NUMA架构 61 2.1.2 内存管理区 62 2.2 伙伴系统算法 65 2.2.1 数据结构 66 2.2.2 块分配 67 2.2.3 块释放 69 2.3 Linux页面级内存管理 72 2.3.1 分配一组页面 73 2.3.2 释放一组页面 80 2.4 每CPU页面高速缓存 81 2.4.1 数据结构 81 2.4.2 通过每CPU 页高速缓存分配页面 82 2.4.3 释放页面到每CPU 页面高速缓存 83 2.5 slab分配器 85 2.5.1 数据结构 86 2.5.2 分配/释放slab页面 92 2.5.3 增加slab数据结构 93 2.5.4 高速缓存内存布局 94 2.5.5 slab着色 95 2.5.6 分配slab对象 96 2.5.7 释放Slab对象 100 2.5.8 通用对象 102 2.5.9 内存池 103 2.6 非连续内存区 104 2.6.1 高端内存区回顾 105 2.6.2 非连续内存区的描述符 106 2.6.3 分配非连续内存区 109 2.6.4 释放非连续内存区 113 第三章 进程的地址空间 117 3.1 用户态内存分配 117 3.1.1 mm_struct数据结构 118 3.1.2 内核线程的内存描述符 122 3.2 线性区的数据结构 123 3.2.1 线性区数据结构 123 3.2.2 红-黑树算法 126 3.2.3 线性区访问权限 128 3.3 线性区的底层处理 130 3.3.1 查找给定地址的最邻近区 131 3.3.2 查找一个与给定的地址区间相重叠的线性区 135 3.3.3 查找一个空闲的地址区间 135 3.3.4 向内存描述符链表中插入一个线性区 137 3.4 分配线性地址区间 141 3.5 释放线性地址区间 151 3.5.1 do_munmap()函数 151 3.5.2 split_vma()函数 153 3.5.3 unmap_region()函数 155 3.6 创建和
删除
进程的地址空间 156 3.6.1 创建进程的地址空间 156 3.6.2
删除
进程的地址空间 175 3.6.3 内核线程1号的地址空间 176 3.7 堆的管理 178 第四章 磁盘
文件
内存映射
182 4.1
内存映射
的数据结构 182 4.2
内存映射
的创建 184 4.3
内存映射
的请求调页 194 4.4 刷新
内存映射
的脏页 203 4.5 非线性
内存映射
210 第五章 页面的回收 215 5.1 页框回收概念 215 5.1.1 选择目标页 216 5.1.2 PFRA设计 217 5.2 反向映射技术 218 5.2.1 匿名页的反向映射 220 5.2.2 优先搜索树 226 5.2.3 映射页的反向映射 231 5.3 PFRA实现 235 5.3.1 最近最少使用(LRU)链表 236 5.3.2 内存紧缺回收 242 5.3.3 回收磁盘高速缓存的页 267 5.3.4 周期回收 273 5.3.5 内存不足
删除
程序 283 第六章 交换机制 289 6.1 交换区数据结构 289 6.1.1 创建交换区 290 6.1.2 交换区描述符 291 6.1.3 换出页标识符 293 6.2 激活和禁用交换区 295 6.2.1 sys_swapon()系统调用 296 6.2.2 sys_swapoff()系统调用 304 6.2.3 try_to_unuse()函数 308 6.3 分配和释放页槽 313 6.3.1 scan_swap_map()函数 313 6.3.2 get_swap_page()函数 316 6.3.3 swap_free()函数 318 6.4 页面的换入换出 320 6.4.1 交换高速缓存 320 6.4.2 换出页 323 6.4.3 换入页 329 第七章 缺页异常处理程序 335 7.1 总体流程 335 7.2 vma以外的错误地址 341 7.3 vma内的错误地址 346 7.3.1 handle_mm_fault()函数 348 7.3.2 请求调页 352 7.3.3 写时复制 358 7.4 处理非连续内存区访问 364
Java SE
62,615
社区成员
307,307
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章