去运行时:在malloc堆初始化之前发生混乱

时间:2013-11-27 05:53:35

标签: go

当我在cmd上输入godoc时,我正在使用Windows 7 32位企业,它给了我以下异常:

运行时:在malloc堆初始化之前发生混乱 致命错误:运行时:无法反响竞技场虚拟地址空间

GO版:go1.2rc5.windows-386.msi
操作系统:Windows 7企业版32位

2 个答案:

答案 0 :(得分:2)

检查是否有足够的空闲(物理)RAM,没有虚拟地址空间限制 尝试使用管理员权限重新启动程序(有reports of UAC搞乱)。如果这没有用,report an issue

错误意味着什么

  

致命错误:运行时:无法反响竞技场虚拟地址空间

Go在虚拟地址空间中保留一个内存区域。 该存储区域用于Gos内部存储器分配并提前保留 该地区是连续的。这个空间是not yet used physically (in RAM or disk)。 只保留地址范围。

由于运行时当前not handle memory limits,它总是会尝试 在32位计算机上保留768MB虚拟地址空间。

即使预留内存也有成本,你的操作系统(windows)必须分配内存来保存 分配信息,Virtual Address Descriptor。 如果您没有足够的内存来保存此描述符,则预留将失败。 另一方面,可能只是虚拟地址空间不能容纳768MB 连续的空间和失败(例如由于碎片)。

答案 1 :(得分:0)

我从未将Windows用作开发站,所以我只是在这里做出假设。

我假设您的系统是否没有足够的一次性ram来运行godoc,或者您在受限模式下运行godoc而无法向内核请求内存分配。

无论如何,我认为错误信息的有趣部分的关键部分是“无法反复竞技场虚拟地址空间”,并且值得在golang-nuts邮件列表中提出您的问题。