go-byte数组最大的长度

原本想打算用go来处理一个1G左右的txt文本的,可是在去读取的时候就报内存溢出了,提示数组已经没法在分配。数组

用的是:ioutil.ReadFile 方法来读取文本,它的返回值是一个[]byte 数组,内存溢出的缘由就是[]byte数组已经超过最大限度值了,因而就想探清一下 go  到底能给[]byte分配多长的数组spa

       var arry [804254644]byte
    log.Println("读取完毕", len(arry))

 

很简单的一段代码,就是一个简明的声明,不作任何其余的处理,通过不断的调试,发现声明的数组长度若是大于 804254644 这个长度的就会报异常,小于的则正常,难道 804254644 就是 go 的[]byte的最大长度?调试

本人的机器是4G内存,[804254644]byte的容量大体是 766M ,这也过小了吧,难道谷歌就只能让他的go最大只能处理766M的文件? 希望仍是个人环境问题而不要是go的问题code

相关文章
相关标签/搜索