加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

对于新的goroutine,Golang错误函数参数太大了

发布时间:2020-12-16 09:23:15 所属栏目:大数据 来源:网络整理
导读:我正在使用go 1.4运行程序,我正在尝试将一个大型结构传递给go函数. go ProcessImpression(network,logImpression,campaign,actualSpent,partnerAccount,deviceId,otherParams) 我收到此错误: runtime.newproc: function arguments too large for new gorout
我正在使用go 1.4运行程序,我正在尝试将一个大型结构传递给go函数.

go ProcessImpression(network,&logImpression,campaign,actualSpent,partnerAccount,deviceId,otherParams)

我收到此错误:

runtime.newproc: function arguments too large for new goroutine

我已经移动通过引用传递有帮助,但我想知道是否有一些方法来传递go函数中的大型结构.

谢谢,

解决方法

不,我都不知道.

我不认为你应该过于激进地调整以避免复制,但是当参数超过新goroutine的可用堆栈空间(应该是千字节)时,会出现这个错误.复制开销在那时是真实的,特别是如果这不是复制这些东西的唯一时间.由于大型结构成员(比如1kb数组而不是切片)或间接结构成员,也许某些结构显式地大于预期结构.如果没有,只需使用指针就行了,如果你担心创建垃圾,请回收使用sync.Pool指向的结构.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读