关注
谈一下个人理解: 数据一定是先会从磁盘copy到内存的,这点毋庸置疑。 首先,因为磁盘的速度远低于IO的速度,数据不可能直接从磁盘走到IO,那样IO会一直等待非常缓慢的磁盘。而且内存中有页,每次从磁盘中copy很多的数据到页中,只有缺页的时候才会从缓慢的磁盘中去取数据。 再有,磁盘数据到内存走的是DMA芯片,这个芯片是独立于CPU之外的专门负责将外部数据加载到内存的芯片,所以磁盘数据到内存的过程并不占用CPU,CPU只用给DMA芯片一个指令就可以去干其他事情了。但是如果数据要直接从磁盘到IO,不走内存,那就无法经过DMA(因为DMA是面向内存的),这时候只能由CPU去介入copy数据,将磁盘数据扔进IO,而CPU搬数据远没有DMA高效,再有磁盘又比乌龟还慢,效率可想而知有多么低。 所以数据一定会先由DMA搬入内存,再由CPU介入从内存copy到IO。 其实真正可以优化的地方是内存到IO的过程,内存也分为内核区和用户区,不同的策略会有非常大的效率影响,可以看一下linux的mmap和sendFile的设计思想,就是针对内存到IO之间的优化。
查看原帖
点赞 评论
相关推荐
点赞 评论 收藏
分享
点赞 评论 收藏
分享
01-07 17:13
广州大学 前端工程师 点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 在大厂上班是一种什么样的体验 #
9995次浏览 127人参与
# 你认为工作的意义是什么 #
248989次浏览 1497人参与
# 我现在比当时_,你想录用我吗 #
8344次浏览 109人参与
# 为了减少AI幻觉,你注入过哪些设定? #
4052次浏览 139人参与
# 程序员找工作至少要刷多少题? #
17217次浏览 240人参与
# 机械人避雷的岗位/公司 #
43157次浏览 294人参与
# 一张图晒一下你的AI员工 #
4735次浏览 111人参与
# 论秋招对个人心气的改变 #
10097次浏览 154人参与
# 刚入职的你踩过哪些坑 #
6478次浏览 127人参与
# AI Coding的使用心得 #
4354次浏览 99人参与
# 关于春招/暑期实习,你想知道哪些信息? #
7074次浏览 119人参与
# 晒晒你司的新年福利 #
7984次浏览 104人参与
# 牛客AI体验站 #
6316次浏览 174人参与
# 12306一秒售罄,你抢到回家的票了吗? #
1794次浏览 46人参与
# 总结:哪家公司面试体验感最差 #
92846次浏览 429人参与
# 程序员能干到多少岁? #
8211次浏览 114人参与
# 你认为小厂实习有用吗? #
117928次浏览 679人参与
# 柠檬微趣工作体验 #
14753次浏览 83人参与
# 互联网公司评价 #
485391次浏览 4109人参与
# 应届生进小公司有什么影响吗 #
118178次浏览 1158人参与
