我们从代码中可以发现得到时间用的的vdso方式的调用, 因为有些内核使用太频繁, 每次都内核调用开销太高, 就将用户态的一段内存映射到内核, 这样内核调用就转换成用户态函数调用和内存读取。...MOVQ $0, m_vdsoSP(BX)
...
walltime涉及的vdso库的解析.
var vdsoSymbolKeys = []vdsoSymbolKey{
{"__vdso_gettimeofday...", 0x315ca59, 0xb01bca00, &vdsoGettimeofdaySym},
{"__vdso_clock_gettime", 0xd35ec75, 0x6e43a318..., &vdsoClockgettimeSym},
}
当然上面代码阅读起来还是有点困难, 进行翻译以后就是下面的代码, vdso_clock_gettime的精度是纳秒而 vdso_gettimeofday..., int32(t.nsec)
}
t := &timeval{}
__vdso_gettimeofday(t, nil)
return t.sec, int32(