go-byte数组最大的长度

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

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

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

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

本人的机器是4G内存,[804254644]byte的容量大致是 766M ,这也太小了吧,难道谷歌就只能让他的go最大只能处理766M的文件? 但愿还是我的环境问题而不要是go的问题

原文地址:https://www.cnblogs.com/jiangguanghe/p/3225274.html