对于新的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数组而不是切片)或间接结构成员,也许某些结构显式地大于预期结构.如果没有,只需使用指针就行了,如果你担心创建垃圾,请回收使用 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |