什么是IO成本

2021-03-26  本文已影响0人  等你足够强了再说吧

IO成本就是寻址时间和上下文切换所需要的时间,最主要是用户态和内核态的上下文切换。

用户态是无法直接访问磁盘等硬件上的数据的,只能通过操作系统去调内核态的接口,用内核态的线程去访问。

  1. 首先,用户态线程需要一些中间计算结果保存CPU寄存器,保存CPU指令的地址到程序计数器(执行顺序保证),还要保存栈的信息等一些线程私有的信息。
  2. 然后切换到内核态的线程执行,就需要把线程的私有信息从寄存器,程序计数器里读出来,然后执行读磁盘上的数据。读完后返回,又要把线程的信息写进寄存器和程序计数器。
  3. 切换到用户态后,用户态线程又要读之前保存的线程执行的环境信息出来,恢复执行。

这个过程是消耗时间资源的。

来自《Linux性能优化实战》里的知识 SQL执行前优化器对SQL进行优化,这个过程还需要占用CPU资源

上一篇 下一篇

猜你喜欢

热点阅读