义乌官网制作网站wordpress hero theme

news/2025/10/8 12:57:36/文章来源:
义乌官网制作网站,wordpress hero theme,网站备案资质,wordpress retina1. mmap 基础概念 mmap 即 memory map#xff0c;也就是内存映射。 mmap 是一种内存映射文件的方法#xff0c;即将一个文件或者其它对象映射到进程的地址空间#xff0c;实现文件磁盘地址和进程虚拟地址空间中一段虚拟地址的一一对映关系。实现这样的映射关系后#xff…1. mmap 基础概念 mmap 即 memory map也就是内存映射。 mmap 是一种内存映射文件的方法即将一个文件或者其它对象映射到进程的地址空间实现文件磁盘地址和进程虚拟地址空间中一段虚拟地址的一一对映关系。实现这样的映射关系后进程就可以采用指针的方式读写操作这一段内存而系统会自动回写脏页面到对应的文件磁盘上即完成了对文件的操作而不必再调用 read、write 等系统调用函数。相反内核空间对这段区域的修改也直接反映用户空间从而可以实现不同进程间的文件共享。如下图所示 mmap 具有如下的特点 mmap 向应用程序提供的内存访问接口是内存地址连续的但是对应的磁盘文件的 block 可以不是地址连续的     mmap 提供的内存空间是虚拟空间虚拟内存而不是物理空间物理内存因此完全可以分配远远大于物理内存大小的虚拟空间例如 16G 内存主机分配 1000G 的 mmap 内存空间     mmap 负责映射文件逻辑上一段连续的数据物理上可以不连续存储映射为连续内存而这里的文件可以是磁盘文件、驱动假造出的文件例如 DMA 技术以及设备     mmap 由操作系统负责管理对同一个文件地址的映射将被所有线程共享操作系统确保线程安全以及线程可见性 mmap 的设计很有启发性。基于磁盘的读写单位是 block一般大小为 4KB而基于内存的读写单位是地址虽然内存的管理与分配单位是 4KB。换言之CPU 进行一次磁盘读写操作涉及的数据量至少是 4KB但是进行一次内存操作涉及的数据量是基于地址的也就是通常的 64bit64 位操作系统。mmap 下进程可以采用指针的方式进行读写操作这是值得注意的。 2. mmap 的 I/O 模型 mmap 也是一种零拷贝技术其 I/O 模型如下图所示 mmap mmap 技术有如下特点 利用 DMA 技术来取代 CPU 来在内存与其他组件之间的数据拷贝例如从磁盘到内存从内存到网卡     用户空间的 mmap file 使用虚拟内存实际上并不占据物理内存只有在内核空间的 kernel buffer cache 才占据实际的物理内存     mmap() 函数需要配合 write() 系统调动进行配合操作这与 sendfile() 函数有所不同后者一次性代替了 read() 以及 write()因此 mmap 也至少需要 4 次上下文切换     mmap 仅仅能够避免内核空间到用户空间的全程 CPU 负责的数据拷贝但是内核空间内部还是需要全程 CPU 负责的数据拷贝 利用 mmap() 替换 read()配合 write() 调用的整个流程如下 用户进程调用 mmap()从用户态陷入内核态将内核缓冲区映射到用户缓存区     DMA 控制器将数据从硬盘拷贝到内核缓冲区可见其使用了 Page Cache 机制     mmap() 返回上下文从内核态切换回用户态     用户进程调用 write()尝试把文件数据写到内核里的套接字缓冲区再次陷入内核态     CPU 将内核缓冲区中的数据拷贝到的套接字缓冲区     DMA 控制器将数据从套接字缓冲区拷贝到网卡完成数据传输     write() 返回上下文从内核态切换回用户态。 3. mmap 的优势 1.简化用户进程编程 在用户空间看来通过 mmap 机制以后磁盘上的文件仿佛直接就在内存中把访问磁盘文件简化为按地址访问内存。这样一来应用程序自然不需要使用文件系统的 write写入、read读取、fsync同步等系统调用因为现在只要面向内存的虚拟空间进行开发。 但是这并不意味着我们不再需要进行这些系统调用而是说这些系统调用由操作系统在 mmap 机制的内部封装好了。 1基于缺页异常的懒加载 出于节约物理内存以及 mmap 方法快速返回的目的mmap 映射采用懒加载机制。具体来说通过 mmap 申请 1000G 内存可能仅仅占用了 100MB 的虚拟内存空间甚至没有分配实际的物理内存空间。当你访问相关内存地址时才会进行真正的 write、read 等系统调用。CPU 会通过陷入缺页异常的方式来将磁盘上的数据加载到物理内存中此时才会发生真正的物理内存分配。 2数据一致性由 OS 确保 当发生数据修改时内存出现脏页与磁盘文件出现不一致。mmap 机制下由操作系统自动完成内存数据落盘脏页回刷用户进程通常并不需要手动管理数据落盘。 2.读写效率提高避免内核空间到用户空间的数据拷贝 简而言之mmap 被认为快的原因是因为建立了页到用户进程的虚地址空间映射以读取文件为例避免了页从内核空间拷贝到用户空间。 3.避免只读操作时的 swap 操作 虚拟内存带来了种种好处但是一个最大的问题在于所有进程的虚拟内存大小总和可能大于物理内存总大小因此当操作系统物理内存不够用时就会把一部分内存 swap 到磁盘上。 在 mmap 下如果虚拟空间没有发生写操作那么由于通过 mmap 操作得到的内存数据完全可以通过再次调用 mmap 操作映射文件得到。但是通过其他方式分配的内存在没有发生写操作的情况下操作系统并不知道如何简单地从现有文件中除非其重新执行一遍应用程序但是代价很大恢复内存数据因此必须将内存 swap 到磁盘上。 4.节约内存 由于用户空间与内核空间实际上共用同一份数据因此在大文件场景下在实际物理内存占用上有优势。 4. mmap 不是银弹 mmap 不是银弹这意味着 mmap 也有其缺陷在相关场景下的性能存在缺陷 由于 mmap 使用时必须实现指定好内存映射的大小因此 mmap 并不适合变长文件     如果更新文件的操作很多mmap 避免两态拷贝的优势就被摊还最终还是落在了大量的脏页回写及由此引发的随机 I/O 上所以在随机写很多的情况下mmap 方式在效率上不一定会比带缓冲区的一般写快     读/写小文件例如 16K 以下的文件mmap 与通过 read 系统调用相比有着更高的开销与延迟同时 mmap 的刷盘由系统全权控制但是在小数据量的情况下由应用本身手动控制更好     mmap 受限于操作系统内存大小例如在 32-bits 的操作系统上虚拟内存总大小也就 2GB但由于 mmap 必须要在内存中找到一块连续的地址块此时你就无法对 4GB 大小的文件完全进行 mmap在这种情况下你必须分多块分别进行 mmap但是此时地址内存地址已经不再连续使用 mmap 的意义大打折扣而且引入了额外的复杂性 5. mmap 的适用场景 mmap 的适用场景实际上非常受限在如下场合下可以选择使用 mmap 机制 多个线程以只读的方式同时访问一个文件这是因为 mmap 机制下多线程共享了同一物理内存空间因此节约了内存。案例多个进程可能依赖于同一个动态链接库利用 mmap 可以实现内存仅仅加载一份动态链接库多个进程共享此动态链接库。     mmap 非常适合用于进程间通信这是因为对同一文件对应的 mmap 分配的物理内存天然多线程共享并可以依赖于操作系统的同步原语     mmap 虽然比 sendfile 等机制多了一次 CPU 全程参与的内存拷贝但是用户空间与内核空间并不需要数据拷贝因此在正确使用情况下并不比 sendfile 效率差

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/931524.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

mac打开app提示文件损坏解决方案

打开终端执行sudo xattr -rd com.apple.quarantine 把app文件移入终端重新打开app即可

深入解析:RDMA简介3之四种子协议对比

深入解析:RDMA简介3之四种子协议对比pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Mona…

大语言模型中的注意力机制详解 - 教程

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

无需重新训练即可更新语音识别词汇

本文介绍了一种无需重新训练即可更新CTC语音识别模型词汇的方法,通过编码器偏置和解码器偏置技术,显著提升对罕见词和未登录词的识别准确率,在医学术语和议会录音数据集上F1分数分别提升至62%和80%。无需重新训练即…

做网站的结论和心得石家庄新闻综合频道节目表

数据挖掘工程师的技术图谱和学习路径: 1.基础知识 数据挖掘工程师是负责从大量数据中发现潜在模式、趋势和规律的专业人士。以下是数据挖掘工程师需要掌握的基础知识: 数据库知识:熟悉关系数据库和非关系数据库的基本概念和操作,掌握SQL语言。 统计学基础:了解统计学的基…

深入解析:vscode中无法使用npm node

深入解析:vscode中无法使用npm nodepre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monac…

第一次算法作业

本学期我遵循的编码规范核心在于清晰与一致,主要包括:使用有意义的英文单词进行命名并严格遵循大小写与下划线的约定,以增强代码可读性;在格式上统一采用4空格缩进并规范运算符空格与括号位置,同时要求为关键逻辑…

网络平台制作多少钱seo网络营销推广公司

文章目录 1实现效果2代码实现 1实现效果 游戏难度:简单,一般,困难,噩梦(控制setInterval的time参数) 按钮功能:结束(可以通过修改gameScore的值来修改判定结束的分数)&am…

AI元人文:新的评价与启示

AI元人文:新的评价与启示 当AI技术逐渐深入人类价值决策的核心领域,传统“价值对齐”范式的局限性愈发凸显——它试图用静态规则束缚动态的价值世界,最终要么陷入“规则僵化”,要么沦为“偏见放大”。而AI元人文理…

网站已经备案更换主机江苏天德建设工程有限公司网站

这次渗透的主站是 一个 Discuz!3.4 的搭建 违法招 piao 网站, 配置有宝塔 WAF 用 Discuz!ML 3.X 的漏洞进行攻击,但是没有成功 发现主站外链会有一个发卡网,引导人们来这充值,是 某某发卡网,而且域名指向也是主站的 ip…

Ai元人文:岐金兰回应

Ai元人文:岐金兰回应 好的,我们来针对岐金兰的回应,对“AI元人文”理论体系面临的挑战进行一番新的、更具对话性的评价。 岐金兰的回应非常精炼,甚至有些“佛系”,但这恰恰揭示了该理论体系的深层特质:它不是一个…

01-方法 动手动脑

public class MethodOverload { public static void main(String[] args) { System.out.println("The square of integer 7 is " + square(7)); System.out.println("\nThe square of double 7.5 is &q…

Why is English commonly used in scientific literature?

Because English is a language that lacks diversity and has only 26 letters. J is Joule, not 🌙.

第二次课程

一、动手动脑:纯随机数发生器实现问题描述 根据课件中给出的纯随机数算法,编写方法生成 1000 个随机整数。算法参数如下: 模(Modulus):2^31 - 1 = Integer.MAX_VALUE(即 2147483647) 乘数(Multiplier):7^5 …

做产品表情的网站外贸推广方式

/*问题出现:如何检查一个目录是否可写,如何目录下还有目录和文件,那么都要检查思路:(1)首先先写出检查空目录是否可写的算法:在该目录中生成一个文件,如果不能生成,表明该目录没有写的权限(2)使…

详细介绍:《云原生安全攻防》-- K8s网络策略:通过NetworkPolicy实现微隔离

详细介绍:《云原生安全攻防》-- K8s网络策略:通过NetworkPolicy实现微隔离2025-10-08 12:20 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x…

网站建设需要多少人网站开发英文术语

shell属于一种很容易学习的程序设计语言,依赖于功能强大的命令可以编写提高开发效率的脚本。这里记录一下常用的shell相关的知识点。 持续更新中。。。 1、在linux或mac中查看使用的shell echo $SHELL /bin/bashshell是一种脚本语言,就会有解释器来执行…

考研系列—操作系统:冲刺笔记(1-3章) - 指南

考研系列—操作系统:冲刺笔记(1-3章) - 指南pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", &…

【Axure高保真原型】交通事故大屏可视化分析案例 - 指南

【Axure高保真原型】交通事故大屏可视化分析案例 - 指南pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas&…