标题: go的值接受体?
作者: c @Ta
时间: 2023-06-27
感觉作用不大,毕竟新建一个类,肯定是想着用类本身变量 掌缘生灭(白)
[隐藏样式|查看源码]
『回复列表(10|显示机器人聊天)』
嗯,我也觉得没用,因为我没基本都是* https://www.chengyao.xyz
在一些比较大的变量下,用 * 可以避免内存拷贝 ~~~
如果对象很小,可以直接放在寄存器上(<=64位),用值接收者可以更快,因为可以优化为寄存器拷贝,避免了内存寻址。如果用指针接收者,就必须为对象分配内存地址,会稍慢。
@老虎会游泳 对于Golang而言,对象内存的分配在哪儿是不可控的吧,因为都是由 runtime 来负责内存分配;对于小对象,runtime 内部有针对小尺寸的分配策略。 ~~~
@㝶芾厶眵攴䭡,如果编译时已经优化成寄存器拷贝了,就不会有内存分配了。
@老虎会游泳 好吧,1.17版本新特性,又学到了新知识。 ~~~
@㝶芾厶眵攴䭡,我其实不知道是新特性,只是做理论分析。
@老虎会游泳 骗我感情鸡哔你,罚你三小时不能喝水。 ~~~
@老虎会游泳,但是我想了一下,值接受体没法保证原子性,比如说,值接受体是拷贝原类副本,拷贝过程中如果旧类改变了么,指针接受体不会有这个问题 掌缘生灭(白)
@c,本来就不应该做这种改变。如果可能会改变又没加锁,就是bug。
11月28日 08:19 星期四
[首页] [回顶] [Jhin主题]
本站由hu60wap6和华为CPU驱动
备案号: 京ICP备18041936号-1