掘金 后端 ( ) • 2021-09-20 19:24
从上面可以看到time.Now()最终调用的是runtime·vdsoClockgettimeSym这个变量指向的函数,函数入口地址是0x7ffff7ffe8e0。
我们用代码编辑器查看vdsoParseSymbols这个函数,它位于runtime/vdso_linux.go文件中。
从上面介绍中,我们知道了Go语言中调用time.Now()时候,没有发生系统调用,是因为它使用vDSO技术,将系统调用clock_gettime映射到应用空间,Go语言调用应用空间相应代码,避免了系统调用 ... 阅读全文