1
lewis89 2020-12-01 07:53:48 +08:00
没啥原因,人家这个是个基础的教程,你非要人家面面俱到怎么可能,Linux 教程教你文件读写 也是上来先 fd = open(
"/data/path","w+") write(fd) 不会上来教你 mmap 吧... 另外 mmap 使用的场景也很少,大部分时候 一次 IO 拷贝 4 次 并不是一个太大的问题,除非你确实在高性能场景需要去大量传输数据 |
2
yaphets666 2020-12-01 09:17:04 +08:00
正常 很多工具 框架都是这样的 面面俱到介绍每一个概念 每一个 api 的文档 极少
|
3
Nebo OP @yaphets666 嗯。我的困惑在于,这样的话。在最初只有官方文档的时候,其他人是如何整理这些资料的呢。 是通过阅读官方 api 、阅读源码之后理清脉络做的总结吗 --感觉好难呀。。 主要是想学习下别人的学习方法。
|
4
SWALLOWW 2020-12-01 14:13:59 +08:00
我也有这样的困惑。。一有问题别人就能告诉你因为底层啥啥啥有问题,官方文档都没有你在哪看的呢
|
5
leo2menhui 2020-12-01 14:25:25 +08:00
其实我也有这样的困惑
|
6
Nebo OP @lewis89 嗯嗯,然后我的困惑就是这类问题, 官网上既然没有提到。那别人是怎么总结出来的呢。 想了解了解别人的学习方法。
|
7
lewis89 2020-12-01 15:30:28 +08:00
@Nebo #6 别人怎么总结出来的?其实没啥总结出来的,无非就是对底层内核实现跟操作系统原理的了解,因为大部分科班毕业的都读过操作系统原理跟体系结构,虽然内核实现细节很多,但是原理并不是太复杂,有兴趣可以去了解一下两本书 Unix 环境高级编程 Linux 编程手册 CSAPP 操作系统原理 读完这几本基本上体系结构就明了,上头封装的东西就那么回事。
因为大部分应用层编程 是用不到 direct memory 的, 也就是说一次 IO 至少 写-拷贝 2 次 读-拷贝 2 次,但是这个消耗对大部分应用来说根本就不算是一个事情,你要应把这个抽象去掉是没有意义的,就像我用的这个 Chrome 浏览器,你说它下载 V2EX 10mb+ 的网络数据 从内核拷贝两次到用户态 算个事情吗? 内存总线速度快得很,根本没必要去优化这个东西。 |