亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

go程序內存不足ec2資源太???

go程序內存不足ec2資源太小?

Go
呼如林 2023-07-31 15:50:32
我想知道我是否錯誤地編寫了 Go 程序,或者我的服務器資源是否太小。我有以下代碼:    spotXmlFile:='/var/www/html/app/public/xml/appdata.xml'    xmlFile,err:=os.Open(spotXmlFile)    defer xmlFile.Close()    byteValue,_:=ioutil.ReadAll(xmlFile)    var listings Listings    xml.Unmarshal(byteValue,&listings)它處理一個 2.5GB 的 xml 文件。我正在aws ec2 t3.large嘗試處理數據,其中2 cpus有8GB mem有趣的是內存不超過4GB,但CPU卻飆升至100%,然后導致程序失敗
查看完整描述

1 回答

?
鴻蒙傳說

TA貢獻1865條經驗 獲得超7個贊

您正在讀取內存中的整個文件,然后對其進行解組,這將使用您并不真正需要的大量額外內存。試試這個,看看會發生什么:


spotXmlFile:='/var/www/html/app/public/xml/appdata.xml'

xmlFile,err:=os.Open(spotXmlFile)

defer xmlFile.Close()

var listings Listings

xml.NewDecoder(xmlFile).Decode(&listings)

使用解碼器,它將在讀取時解析和解組底層文件。


如果您只需要文件的一部分并且想要進一步優化它,您可以使用解碼器令牌逐個令牌對文件進行解碼,并提取您需要的部分。


查看完整回答
反對 回復 2023-07-31
  • 1 回答
  • 0 關注
  • 139 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號