当前位置: 技术问答>linux和unix
为什么IO函数要把内容从内核缓冲区拷贝到用户缓冲区? 有点浪费
来源: 互联网 发布时间:2017-02-05
本文导语: 例如,一个socket用recv接受数据,socket接受到了先放到内核缓冲区, 然后recv再拷贝到用户缓冲区里面。 两次拷贝感觉是对内存/cpu时间的浪费,而且切换运行级别也是要耗费时间的啊。 这样做的必要性在哪里? 好处...
例如,一个socket用recv接受数据,socket接受到了先放到内核缓冲区,
然后recv再拷贝到用户缓冲区里面。
两次拷贝感觉是对内存/cpu时间的浪费,而且切换运行级别也是要耗费时间的啊。
这样做的必要性在哪里? 好处在哪里? 我看不出来。
然后recv再拷贝到用户缓冲区里面。
两次拷贝感觉是对内存/cpu时间的浪费,而且切换运行级别也是要耗费时间的啊。
这样做的必要性在哪里? 好处在哪里? 我看不出来。
|
人家内核是很忙的,人家的资源怎么能让你一个小用户随便占用,所以先临时放在人家那里一会儿,差不多了就赶快拿走,别在人家那里占地方....
大概是这个意思
大概是这个意思
|
socket的底层实现是在内核中
这个运行级别切换是必须的吧
这个运行级别切换是必须的吧