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

相關文章
相關標籤/搜索