血衫的一己之见 头像

消息来源频道

血衫的一己之见

@bgming

频道1,514 位成员公开可见0 人在线

分享动漫与技术

成员规模1,514 位成员
在线情况0 人在线
消息总数6,552 条消息
浏览量总数22,190 次浏览

在这个频道里搜索消息……

t.me/bgming

http://science.raphael.poss.name/go-calling-convention-x86-64.html
一篇关于go的x86-64的函数调用的底层分析的长文,总结如下:
- go的所有的函数调用参数和返回值都走栈,比起走寄存器的c/c++和rust等语言要吃内存,让正常路径的程序产生比较大的开销。
- 跟gcc等编译器相比,go的默认编译器没有做一些调用方面的优化。
- defer是通过调用时注册一个callback实现了类似其他语言的finally的功能,因为没有堆分配,所以比较快。
- panic vs error 在性能方面没有明显的优劣,要具体问题具体分析。