为了账号安全,请及时绑定邮箱和手机立即绑定

如何在Google Go中增加堆空间

如何在Google Go中增加堆空间

Go
慕妹3242003 2021-05-05 17:18:40
我正在运行 Rober Hundt 基准测试中的 Go 代码,以比较 Go 与其他语言的性能。当我从该基准运行Go代码(请参阅http://code.google.com/p/multi-language-bench/source/browse/trunk/src/#src%2Fhavlak%2Fgo)时,内存不足例外:................运行时:内存不足:无法分配1048576字节块(正在使用1270808576)抛出:内存不足我的问题是如何增加Go的内存空间。是否有一些编译器可以相应设置的启动参数或标志?Go来源的Makefile文件没有显示任何内容...
查看完整描述

3 回答

?
MMMHUHU

TA贡献1834条经验 获得超8个赞

如果您共享您的操作系统版本,如果是32位对64位,并且获得了您的go version结果,我们可能会为您提供更多帮助。

  • Go的32位版本存在堆内存问题,通常在生产中不使用。确保在64位平台上使用Go的64位版本。

  • Go提示,将成为Go 1.1的go分支已将最大堆空间从8 GB升级到了128 GB。与我交谈过的核心Go开发人员建议使用Go tip进行内存密集型生产。

  • Windows上的Go使用较少,因此测试较少,这可能是一个错误。在Linux和OS X较小程度上,Go的尝试和真实性更高。

  • 正如peterSO所提到的,Robert Hundt的基准测试存在缺陷-在此处了解更多:Profiling Go程序


查看完整回答
反对 回复 2021-05-31
?
波斯汪

TA贡献1811条经验 获得超4个赞

一个人只能疯狂地猜测-因为缺少更多细节。

  • 如果您运行的是32位Go版本,请改用64位Go版本,并使用最新修订版。

  • 如果可能,请使用* nix平台-它具有IMO更好的内存管理。


查看完整回答
反对 回复 2021-05-31
?
撒科打诨

TA贡献1934条经验 获得超2个赞

对于那些可能感兴趣的人,我给先生发送了一封邮件。洪特本人问是否有一些(未公开说明的)编译器开关可以通过某种方式修改或参数化堆大小。这是因为我首先错误地认为这样的开关必须存在,但没有记录在案。而且似乎也没人知道我在这里的帖子。我想我在这方面对jvm的工作方式感到“太受启发了”。

无论如何,他建议尝试使用不同的编译器(基于gcc的编译器或基于plan-9的编译器),因为一种编译器可能会比另一种更好。当然,然后尝试使用64位计算机。

他还为我指出了一些有关Go的内存管理的好文章:http : //lwn.net/Articles/428100/

但是,没有,没有编译器开关可以处理内存设置。


查看完整回答
反对 回复 2021-05-31
  • 3 回答
  • 0 关注
  • 211 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信