『阿男的工程世界』*让我们简单聊一下IO(4)*
2017-02-11 00:00
337 查看
『阿男的工程世界』*让我们简单聊一下IO(4)*
最后,阿男给大家讲一下
这样,我们操作这个文件数据时,实际上操作的是内存里面的数据,最后再通过系统接口,回写到文件系统。Linux下这种机制叫做mmap:
![](https://static.oschina.net/uploads/img/201702/11210222_Ks1R.jpg)
关于
其实这算是一种操作系统提供的缓存机制了,因为机械硬盘比较慢,而相比而言内存很快,所以memory mapped IO是拿空间换时间。
当然现在机械硬盘自己有硬件缓存,SSD固态硬盘更快,所以Memory Mapped IO是否还有价值呢?
可以说,在SSD时代下,
IO的话题就聊到这里,接下来阿男要继续在『Linux内核世界』那个专栏给大家更新内存管理方面的内容。希望通过这些文章,大家对计算机世界的整个拼图在慢慢拼起来。
最后,阿男给大家讲一下
Memory Mapped IO,这个是完全由操作系统实现的一种设计。所谓
Memory Mapped IO,就是在我们操作文件的时候,不是直接操作这个文件本身的数据,而是先把文件的数据拷贝到内存。Linux系统不叫
copy,叫
mapped,就是映射到内存。
这样,我们操作这个文件数据时,实际上操作的是内存里面的数据,最后再通过系统接口,回写到文件系统。Linux下这种机制叫做mmap:
![](https://static.oschina.net/uploads/img/201702/11210222_Ks1R.jpg)
关于
mmap,阿男会在别的专栏给大家细讲。
其实这算是一种操作系统提供的缓存机制了,因为机械硬盘比较慢,而相比而言内存很快,所以memory mapped IO是拿空间换时间。
当然现在机械硬盘自己有硬件缓存,SSD固态硬盘更快,所以Memory Mapped IO是否还有价值呢?
可以说,在SSD时代下,
Memory Mapped IO的价值可能是打了折扣了。但是在性能方面,我们不要做任何假设,在工业领域里面,总有我们想不到的使用场景,只要硬盘和内存的速度差存在,那么弥补速度差距的设计就肯定有价值。
IO的话题就聊到这里,接下来阿男要继续在『Linux内核世界』那个专栏给大家更新内存管理方面的内容。希望通过这些文章,大家对计算机世界的整个拼图在慢慢拼起来。
相关文章推荐
- 『阿男的工程世界』*让我们简单聊一下IO(3)*
- 『阿男的工程世界』*让我们简单聊一下IO(01)*
- 『阿男的工程世界』*让我们简单聊一下IO(2)*
- 好久没更新博客了,今天给大家分享一下Android中的资源与国际化的问题,通常我们新建一个Android工程,目录结构如下图所示: 我们主要看一下layout与values目录,layou
- 复杂的世界,我们简单地活着
- C语言三字棋游戏先简单介绍一下三子棋的规则,方便我们接下来的编程和理解。规则如下: 在九宫格棋盘上,只要将自己的三个棋子走成一条线(横、竖、对角线),对方就算输了。
- 简单的,独立却互联的东西 【思考一下我们想看什么网站,他们要做什么网站】
- 从一个简单的示例,我们开始进入Mybatis的世界!
- 简单点儿、简单点儿、再简单点儿,其实世界可以不是我们想象的那么复杂
- 我们的游戏世界(背包【仓库】,交易,任务,简单经济系统,装备)实现(基于仙剑demo聊聊游戏世界)第三篇谈谈装备
- 我们的游戏世界(背包【仓库】,交易,任务,简单经济系统,装备)实现(基于仙剑demo聊聊游戏世界)第二篇谈谈任务
- 世界是复杂的,但我们却总是倾向于用最简单的方式去思考它。
- 『阿男的工程世界』*04 ldd,objdump与patchelf*
- 简单点儿、简单点儿、再简单点儿,其实世界可以不是我们想象的那么复杂
- 我们的游戏世界(背包【仓库】,交易,任务,简单经济系统,装备)实现(基于仙剑demo聊聊游戏世界)第一篇谈谈交易
- kindeditor本身支持上传flash功能,但是我们经常需要上传一些flv、mp4或则其它格式的视频。 其实具体的播放功能是通过jwplayer实现的。我只对kindeditor简单的修改了一下
- 创建一个Storyboard工程 storyboard是在ios5中引入的新控件,能够更加清晰、简单的整合多个ViewController的关系,下面主要介绍一下怎么初建一个storyboard的工程
- 『阿男的工程世界』*03 POSIX AIO vs. Native AIO*
- 简单点儿、简单点儿、再简单点儿,其实世界可以不是我们想象的那么复杂
- Ext.Net控件,简单案例1,让我们从Hello World开始,走进Ext.Net控件的世界!。