V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
Nebo
V2EX  ›  程序员

不懂就问:关于查看官方文档的困惑。

  •  
  •   Nebo · 2020-12-01 02:30:08 +08:00 · 2049 次点击
    这是一个创建于 1486 天前的主题,其中的信息可能已经有所发展或是发生改变。
    今天学习的时候遇到一个问题,NIO 资料 网上一搜,很多都很详细的说明了 (1)非直接缓冲区、( 2 )直接缓冲区 的使用。
    但是在官方文档中: https://docs.oracle.com/javase/tutorial/essential/io/fileio.html 我却没有看到有讲 直接缓冲区。
    按照道理来说官方文档不应该是最全的吗, 或者说是在别的章节里面我没注意到吗。感到十分困惑 ,一直觉得官方文档应该是最详细的。
    求教一下这是什么原因 3ks ~
    7 条回复    2020-12-01 15:30:28 +08:00
    lewis89
        1
    lewis89  
       2020-12-01 07:53:48 +08:00
    没啥原因,人家这个是个基础的教程,你非要人家面面俱到怎么可能,Linux 教程教你文件读写 也是上来先 fd = open(
    "/data/path","w+") write(fd)

    不会上来教你 mmap 吧... 另外 mmap 使用的场景也很少,大部分时候 一次 IO 拷贝 4 次 并不是一个太大的问题,除非你确实在高性能场景需要去大量传输数据
    yaphets666
        2
    yaphets666  
       2020-12-01 09:17:04 +08:00
    正常 很多工具 框架都是这样的 面面俱到介绍每一个概念 每一个 api 的文档 极少
    Nebo
        3
    Nebo  
    OP
       2020-12-01 11:41:17 +08:00
    @yaphets666 嗯。我的困惑在于,这样的话。在最初只有官方文档的时候,其他人是如何整理这些资料的呢。 是通过阅读官方 api 、阅读源码之后理清脉络做的总结吗 --感觉好难呀。。 主要是想学习下别人的学习方法。
    SWALLOWW
        4
    SWALLOWW  
       2020-12-01 14:13:59 +08:00
    我也有这样的困惑。。一有问题别人就能告诉你因为底层啥啥啥有问题,官方文档都没有你在哪看的呢
    leo2menhui
        5
    leo2menhui  
       2020-12-01 14:25:25 +08:00
    其实我也有这样的困惑
    Nebo
        6
    Nebo  
    OP
       2020-12-01 15:17:12 +08:00
    @lewis89 嗯嗯,然后我的困惑就是这类问题, 官网上既然没有提到。那别人是怎么总结出来的呢。 想了解了解别人的学习方法。
    lewis89
        7
    lewis89  
       2020-12-01 15:30:28 +08:00
    @Nebo #6 别人怎么总结出来的?其实没啥总结出来的,无非就是对底层内核实现跟操作系统原理的了解,因为大部分科班毕业的都读过操作系统原理跟体系结构,虽然内核实现细节很多,但是原理并不是太复杂,有兴趣可以去了解一下两本书 Unix 环境高级编程 Linux 编程手册 CSAPP 操作系统原理 读完这几本基本上体系结构就明了,上头封装的东西就那么回事。

    因为大部分应用层编程 是用不到 direct memory 的, 也就是说一次 IO 至少 写-拷贝 2 次 读-拷贝 2 次,但是这个消耗对大部分应用来说根本就不算是一个事情,你要应把这个抽象去掉是没有意义的,就像我用的这个 Chrome 浏览器,你说它下载 V2EX 10mb+ 的网络数据 从内核拷贝两次到用户态 算个事情吗? 内存总线速度快得很,根本没必要去优化这个东西。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5195 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 09:33 · PVG 17:33 · LAX 01:33 · JFK 04:33
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.