一次系统调用开销到底有多大?
首先说说系统调用是什么,当你的代码需要做IO操作(open、read、write)、或者是进行内存操作(mmpa、sbrk)、甚至是说要获取一个系统时间(gettimeofday),就需要通过系统调用来和内核进行交互。无论你的用户程序是用什么语言实现的,是php、c、java还是go,只要你是建立在Linux内核之上的,你就绕不开系统调用。图1 系统调用在计算机系统中的位置大家可以通过strace命令来查看到你的程序正在执行哪些系统调用。比如我查看了一个正在生产环境上运行的nginx当前所执行的系统调用,如下:# strace -p 28927 Process 28927 attached epoll_wait(6, {{EPOLLIN, {u32=96829456, u64=1403123...阅读全文