第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

內(nèi)存沒有被釋放

內(nèi)存沒有被釋放

Go
慕桂英3389331 2022-06-13 17:12:52
這是一個(gè)解壓縮字符串的簡單程序,我只是運(yùn)行一個(gè)循環(huán)來顯示內(nèi)存使用量增加并且使用的內(nèi)存永遠(yuǎn)不會(huì)被釋放。即使在 8 小時(shí)后也沒有釋放內(nèi)存解壓字符串包:https ://github.com/Albinzr/lzGo - (簡單的lz字符串算法)我正在添加一個(gè)要點(diǎn)鏈接,因?yàn)橛糜诮鈮嚎s的字符串很大源代碼: 代碼活動(dòng)監(jiān)視器我是新手,誰能告訴我如何解決內(nèi)存問題?更新應(yīng)用程序在達(dá)到內(nèi)存限制時(shí)仍然崩潰,因?yàn)樗皇褂?12mb - 15mb,這不應(yīng)該發(fā)生!
查看完整描述

1 回答

?
收到一只叮咚

TA貢獻(xiàn)1821條經(jīng)驗(yàn) 獲得超5個(gè)贊

這里發(fā)生了很多事情。

首先,使用 Go 版本 1.14.2,您的程序對我來說運(yùn)行良好。它似乎沒有泄漏內(nèi)存。

其次,即使我故意通過將循環(huán)大小增加到 100 并將結(jié)果保存在數(shù)組中來制造內(nèi)存泄漏,我也只使用了大約 100 MB 的內(nèi)存。

第三,您不應(yīng)該使用 Activity Monitor 或任何其他操作系統(tǒng)級別的工具來檢查 Go 程序中的內(nèi)存泄漏。操作系統(tǒng)內(nèi)存管理是一個(gè)非常復(fù)雜的話題,操作系統(tǒng)工具旨在幫助您確定程序如何影響整個(gè)系統(tǒng),而不是程序中發(fā)生了什么。

具體來說,macOS“Real Memory”(類似于 RSS,駐留集大?。┌ǔ绦虿辉偈褂玫僮飨到y(tǒng)尚未收回的內(nèi)存。當(dāng)垃圾收集器釋放內(nèi)存并告訴操作系統(tǒng)它不再需要該內(nèi)存時(shí),操作系統(tǒng)不會(huì)立即收回它。(為什么它以這種方式工作超出了這個(gè)答案的范圍。)此外,如果操作系統(tǒng)處于內(nèi)存壓力之下,它不僅可以收回程序已釋放的內(nèi)存,還可以收回(臨時(shí))程序的內(nèi)存仍在使用但“最近”沒有訪問過,以便另一個(gè)急需內(nèi)存的程序可以使用它。在這種情況下,即使進(jìn)程實(shí)際上并沒有使用更少的內(nèi)存,“Real Memory”也會(huì)減少。操作系統(tǒng)報(bào)告的任何統(tǒng)計(jì)數(shù)據(jù)都不會(huì)在此處為您提供幫助。

您需要使用像expvarexpvarmonGODEBUG=gctrace=1這樣的原生 Go 設(shè)置或工具來查看垃圾收集器在做什么。

至于為什么你的程序在限制時(shí)會(huì)耗盡內(nèi)存,請記住,默認(rèn)情況下,Go 會(huì)構(gòu)建一個(gè)動(dòng)態(tài)鏈接的可執(zhí)行文件,并且僅讀取所有共享庫會(huì)占用大量內(nèi)存。嘗試使用靜態(tài)鏈接構(gòu)建您的應(yīng)用程序,CGO_ENABLED=0看看是否有幫助。查看僅運(yùn)行 1 次循環(huán)迭代時(shí)它使用了多少內(nèi)存。


查看完整回答
反對 回復(fù) 2022-06-13
  • 1 回答
  • 0 關(guān)注
  • 221 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號