系统调用回答为什么要用buffer写
生活随笔
收集整理的这篇文章主要介绍了
系统调用回答为什么要用buffer写
小编觉得挺不错的,现在分享给大家,帮大家做个参考.
为什么系统调用会慢?
程序的读写是要调用内核的方法去写,产生系统调用,就必须频繁的切换用户态和内核态,切换的过程需要保存现场,清理寄存器,回复现场等,消耗cpu时间,所以慢,好的程序应该是尽量减少这种动作。
java的普通的写
有两种方式:
1.普通的io流写,
跟踪系统调用
用 strace 跟踪系统调用,strace -ff -o out java java的class文件名
普通的写:
buffered写:
对比一下,普通的写10个字节就发生一次系统调用write(),buffered写8190(将近8k)才发生一次系统调用,当然是发生系统调用越少越快了。
总结
以上是生活随笔为你收集整理的系统调用回答为什么要用buffer写的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: linux内核管理pagecache的一
- 下一篇: 手撕 RPC 1